我了解事件处理程序中$(this)
的含义。
$("div#d1").on("mouseover", function() {
$(this).attr("id", "d2");
alert("id: " + $(this).attr("id"));
});
但是,当它在jQuery代码的顶层使用时,这是什么意思?
var tgt = $("h2#slider");
tgt.hide();
tgt.slideDown(2000);
$(this).on("click", function() {
tgt.slideUp();
});
答案 0 :(得分:4)
this
引用窗口对象。
https://jsfiddle.net/z20x9owq/
答案 1 :(得分:0)
在回调Jquery "$(this)"
中使用时,指的是当前DOM元素
但是在回调之外使用时,$(this)
是一个数组,其Window对象位于第0个索引,与Javascript
“ this”关键字相同,在函数之外使用时,它也是Window对象。
一个很好的例子是:
console.log($(this)===this); //return false
console.log($(this)[0]===this); //return true
希望它会有所帮助:)
答案 2 :(得分:-1)
“ this”是html元素,没有“ on”方法或任何jQuery方法。您必须使用$(this)将其转换为jquery元素,才能使用“ on”方法