在jQuery.each()循环中,我一直认为这this相当于valueOfElement.有人可以解释这个区别吗?
例:
$.each(object, function(i, val){
$('body').append('<b>valueOfElement:</b> ' + typeof val + ' - ' +
'<b>this: </b>' + typeof this + '<br/>');
});
Run Code Online (Sandbox Code Playgroud)
结果:
valueOfElement: string - this: object
valueOfElement: boolean - this: object
valueOfElement: object - this: object
Run Code Online (Sandbox Code Playgroud)
我的日期字符串看起来像这样:
"2012 28 Nov 21:00 CET"
Run Code Online (Sandbox Code Playgroud)
strtotime("2012 28 Nov 21:00 CET") 返回false.
有没有办法将此字符串转换为日期对象,还是需要以不同方式对其进行格式化?
function foo(){
console.log('foo', this);
}
foo();
foo.call({ bar: 1 });
foo.apply([{ bar: 1 }]);
Run Code Online (Sandbox Code Playgroud)
有没有办法知道是否foo()使用普通调用或call/apply?
是否可以使用GD库来创建动画gif?我希望用户上传一个png/jpeg并从图像中生成一个2帧动画gif.谢谢
有没有办法知道在超时发生之前它在会话对象上剩下多长时间?
我知道如何从webconfig获取实际超时,但有没有办法知道会话最后一次活动?
我的用户将在我的应用程序中填写大型表单,如果在他们点击"提交"之前需要超过10分钟,他们将被注销.如果会话即将超时,我想警告他们.我将使用ajax调用进行检查.
我想模拟C#Any()方法,该方法可用于确定集合是否具有基于lambda表达式的任何匹配对象.
Array.prototype.any = function (expr) {
if (typeof jQuery === 'undefined')
throw new ReferenceError('jQuery not loaded');
return $.grep(this, function (x, i) {
return eval(expr);
}).length > 0;
};
var foo = [{ a: 1, b: 2 }, { a:1, b: 3 }];
console.log(foo.any('x.a === 1')); //true
console.log(foo.any('x.a === 2')); //false
Run Code Online (Sandbox Code Playgroud)
我知道这eval()是不好的做法,原因很明显.但是在这种情况下是否可以,因为我不会将此与任何与用户输入相关的内容使用?
这可以不用eval()吗?我无法想出一种方法将表达式传递给函数而不进行评估.
我有一个带有一些静态列表的类。出于演示目的,我仅显示两个:
public class Foo
{
public static readonly List<long> FirstList(EfEntities dbContext)
{
return dbContext.SomeTable.Where(x => x == 1).ToList();
}
public static readonly List<long> SecondList(EfEntities dbContext)
{
return dbContext.SomeTable.Where(x => x == 2).ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
我不太喜欢将数据库上下文传递给每个静态方法。您对不同的方法有什么建议吗?
我已使用类型的对象填充了以下列表 AnonymousType
List<object> someList = new List<object>();
someList.Add(new { foo = 1 });
Run Code Online (Sandbox Code Playgroud)
我的问题是,我无法强行输入这样的事情:
someList.Where(x=> x.foo == 1);
Run Code Online (Sandbox Code Playgroud)
但是,可以在此列表中:
var someList = new[] { new { foo = 1 } };
Run Code Online (Sandbox Code Playgroud)
我可以投出我的第一个列表,使其表现得像第二个列表吗?我希望能够在上面显示的属性上使用lambda表达式.
这是我用来在某个过程中模拟tab-keypress的代码:
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
public Form1()
{
PostMessage(MemoryHandler.GetMainWindowHandle(),
(int)KeyCodes.WMessages.WM_KEYDOWN,
(int)KeyCodes.VKeys.VK_TAB, 0);
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法扩展它,以便按下(例如)1秒的键,而不是只是点击它?
请注意,我对Thread.Sleep()阻止UI线程的解决方案不感兴趣.
我正在使用Grunt构建Durandal入门套件专业版.
这一切都很好,除了一个小细节.我想app-config从优化器中排除一个文件(下面),并在构建完成后将其保存为非缩小文件.
根据其他SO线程建议,我目前正在使用empty:它,将其从预期的优化文件中删除.但是,当我打开构建的项目时,我在控制台中收到错误:
Uncaught Error: main missing app-config
options: {
name: '../lib/require/almond-custom',
baseUrl: requireConfig.baseUrl,
mainPath: 'app/main',
paths: mixIn({ }, requireConfig.paths, {
'almond': 'lib/require/almond-custom',
'app-config': 'empty:'
}),
optimize: 'none',
out: 'build/app/main.js',
preserveLicenseComments: false
}
Run Code Online (Sandbox Code Playgroud)
杏仁是问题吗?我尝试使用它将其切换到完整的requirejs include: ['path/to/require'],但没有成功.
如果你想在本地重现它,你可以从上面的链接下载入门套件,或者使用一个稍微可配置的版本,这更接近我的例子.只需npm install在文件夹中运行一个就可以了.
javascript requirejs durandal grunt-contrib-requirejs requirejs-optimizer