我正在尝试按照此处给出的模型编写一个jQuery小部件.这是小部件的快照:
(function ($) {
$.widget("ui.notification", {
_create: function () {
if (!this.element.hasClass("ntfn")) {
this.element.addClass("ntfn");
}
this.elTitle = this.element.append("<div class='ntfn-title'>Notifications</div>");
this.elTitle.click(this._titleClick)
},
_titleClick: function () {
console.log(this);
}
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
这里的问题在于_titleClick方法内部的"this"范围,在方法内部指向title元素.但我需要它指向widget元素.
我认为这样做的一种方法是使用类似的包装类
var that = this;
this.elTitle.click(function() {
that._titleClick.apply(that, arguments);
});
Run Code Online (Sandbox Code Playgroud)
这是解决此问题的最佳方法,还是有任何解决此问题的一般模式?
在Ruby 1.8.7和1.9.2中也是如此:
$ irb
ruby-1.8.7-p302 > foo.nil?
NameError: undefined local variable or method `foo' for #<Object:0x3794c>
from (irb):1
ruby-1.8.7-p302 > @bar.nil?
=> true
ruby-1.8.7-p302 > @@wah.nil?
NameError: uninitialized class variable @@wah in Object
from (irb):3
Run Code Online (Sandbox Code Playgroud)
为什么实例变量的处理方式与本地和类变量不同?
一位教授告诉我,你可以使用utime.h获得文件的最后修改时间.但是,手册页似乎引用了utime()仅设置此值.如何在UNIX系统上查找上次在C中更改文件的时间?
我通过DreamSpark安装了VS2010 Pro.我真的不希望在PC上需要任何东西,但WP7 SDK坚持安装VS Express进行开发.
我可以在没有VS Express的情况下安装SDK吗?
我想有一个像这样的mysql查询:
select <second word in text> word, count(*) from table group by word;
Run Code Online (Sandbox Code Playgroud)
mysql中的所有正则表达式示例用于查询文本是否与表达式匹配,但不用于从表达式中提取文本.有这样的语法吗?
我想保存下载的ListView项目,以便例如下次应用程序启动时,它不应该启动我的下载对话框,而是ListView应该打开我以前的项目.
一些有用的代码片段将不胜感激.
在此先感谢,请告诉我是否需要澄清!
根据标题,是否可以new SoapClient在尝试运行之前输出已创建的XML,__soapCall()以确保在将其实际发送到SOAP服务器之前是正确的?
var a="password";
Run Code Online (Sandbox Code Playgroud)
在任何变量中如何检查长度是否不小于6个字符而不是> 12
$(a).len();?????
Run Code Online (Sandbox Code Playgroud) 是否存在使用Qt以文件(ini或任何其他格式)保存我的应用程序设置(如用户选择,窗口大小,位置等)的方法?
我注意到,在我的机器上,Java中最小控制台应用程序的启动时间略长于100毫秒,而等效的C应用程序则为1毫秒.虽然在大多数情况下这不是问题,但我想知道是否有办法减少这个时间,因为我需要编写一个将被执行多次的应用程序(比如在bash脚本中循环).