这和$(this)在像widget这样的widget方法中意味着什么?
例如,拥有这样的小部件,
$.widget("sample.CustomWidget", {
options:{
},
_create: function(){
// Here what do this and $(this) mean
}
});
提前致谢,
-Raja。
答案 0 :(得分:5)
它基本上取决于_create方法的调用者......无论如何:
this
是指功能
$(this)
是包含在jQuery对象中的上述对象
另见:
http://www.quirksmode.org/js/this.html
http://www.bennadel.com/blog/1838-Wrapping-The-Window-Object-In-A-jQuery-Wrapper.htm
答案 1 :(得分:3)
在标准jQuery UI样式窗口小部件的事件处理程序中,this
将引用与事件相关的DOM元素,$(this)
创建一个jQuery包装器{ {1}},DOM元素(再次)可用this
。
但是当调用小部件函数时,通常this
指的是调用函数的jQuery对象,而不是特定的DOM元素。然后,您可以对该jQuery对象中匹配的元素集进行操作。
答案 2 :(得分:2)
在与jQuery集成的方法中:
$.fn.yourFunction = function() {
// ...
};
this
的值是jQuery对象本身。因此,没有理由将this
与jQuery的另一个调用包装起来,尽管它没有受到伤害。
在对事件处理程序的回调中:
$('#myButton').click(function() {
// ...
});
this
的值是事件的目标DOM元素,如果事件是在实际DOM之外的其他事件上触发的话,则是目标对象。
在其他jQuery回调情况中,例如.each()
,this
的值通常由jQuery对象的性质决定。
所有这一切的结果是在一个集成的jQuery函数(第一个示例)中,你通常不在另一个jQuery调用中包装this
;它已经是一个jQuery对象了。在所有其他情况下,如果您想将this
与jQuery工具一起使用,那么 do 必须将其包装起来。
答案 3 :(得分:1)
在该上下文中,“this”是实际的JQuery窗口小部件对象,它允许您查询诸如widgetName,widgetEventPrefix等内容,而“$(this)”只是“this”的JQuery对象,您可以使用。获取小部件属性。
答案 4 :(得分:1)
这表示您所在的构造函数。例如,在单击事件中,单击dom元素,在函数中构造函数;
function test{
this.b = "hello jupiter";
}
var a = new test();
alert(a.b);
实际上,$(this)并没有什么特别之处。有一个名为$的函数,“this”是它的参数,如alert;
$(this);
//just like
alert("some string);