這可能看起來像一個老問題,並且有很多頁面解釋了這兩者之間的區別,但我仍然不完全理解它,因爲兩者似乎都適合我。我想我明白了爲什麼我不能在我的嵌套函數中使用this
或$(this)
。但爲什麼這兩個變量都是可變的?哪一個應該是我應該使用的?
(function($) {
$.fn.helloWorld = function() {
var $wrap1 = this;
var $wrap2 = $(this);
var keys = function(){
$(document).keyup(function (event) {
if (event.keyCode === 39) {
console.log("key pressed");
event.preventDefault();
this.fadeOut(); //Does not work
$(this).fadeOut(); //Does not work
$wrap1.fadeOut(); //Does work
$wrap2.fadeOut(); //Does work
}
});
};
keys();
}
}(jQuery));
你打電話給helloWorld嗎? –
不知道爲什麼你需要'keys'變量 - 直接調用keyup。另外,通常會從jQuery擴展中返回'this'以允許鏈接(除非需要返回其他值)。你的東西沒有任何回報。 – Adam