2012-08-06 156 views
1

我想寫一個jquery插件,我有一個關於着名的「this」的問題。

這裏是自定義插件的號召:

$('.selector').myPlugin({ 
     test: $(this).attr('rel') 
}); 

而現在,在我的插件的地方:

$.myPlugin = function (options) { 
    alert(options.test); 
} 

我的問題是:如何使用我的選擇在相對屬性插件使用$(this)?

前面的代碼總是告訴我「this」是Document。

感謝名單了很多

+1

你能說明一下http://jsfiddle.net嗎? – 2012-08-06 15:59:43

+0

使用'this'時要小心,因爲它會根據上下文而變化;) – 2012-08-06 16:09:03

回答

3

$(this)是不是你希望它是該對象的文字內容。循環使用each

$('.selector').each(function() { 
    $(this).myPlugin({ 
     test: $(this).attr('rel') 
    }); 
}); 

裏面eachthis將指向正確的元素,而不是調用函數的上下文。

+0

非常感謝您的工作。有沒有解決方案使用'$(this)'而不使用'each()'? – aztuk 2012-08-07 07:53:29

+0

@aztuk:不,沒有。 – Ryan 2012-08-07 13:29:39