給予代碼:「這」在這裏代表什麼?
$(element, document).mousedown(function() {
$(this).attr('id'); // get id of the element
});
如何重寫代碼,而無需使用this
?
給予代碼:「這」在這裏代表什麼?
$(element, document).mousedown(function() {
$(this).attr('id'); // get id of the element
});
如何重寫代碼,而無需使用this
?
您可以使用以下方法:
$(element, document).mousedown(function(e) {
$(e.target).attr('id'); // Get id of the element.
});
這是什麼主張?
在這種情況下,this
指向您當前正在爲其定義mousedown
屬性的元素。
我看不到在這裏不使用它的原因。你能詳細說明你想做什麼嗎?
在這種情況下,「this」指的是被點擊的元素。它不是必需的,但你必須有這樣的代碼,每一個元素:
$("#button").mousedown(function(){
$("#button").attr("id");
})
這是很容易把它留在
@cwallenpoole你爲什麼編輯我的答案? – Coomie
你錯過了一個關閉'''。 – cwallenpoole
這在JavaScript代表函數的執行上下文。在這種情況下,您可以從jQuery設置this
中受益於您綁定的元素。但是通過自寫函數,通常最終會引用全局對象。
如果你曾經輸入過一個新的函數作用域,你通常必須保留這個,因爲一個新的函數有一個新的函數。
例如
$('div').each(function(index, item) {
var that = this;
$(this).mousedown(function() {
//this could be something different than before
//so we use the that reference
$(that).hide();
}
});
「這個」 是指功能的範圍。關於這個功能,這是被執行的元素。在你編碼的情況下,這個動作被mousedown,所以被執行的元素就是這個。希望這個幫助。
問題是你不會比使用this
更有效率。其他一切或多或少需要第二個元素查找,雖然不是致命的昂貴,但比在範圍內使用該對象更昂貴(this
)。
嚴格地說,這是最字面解釋:
$(element, document).mousedown(function() {
$(element, document).attr('id');
});
現在,這可能是好的,但如果你的元素實際上是返回多個值(例如類選擇)一個選擇,你會有問題。所以,相反,你可能要考慮:
$(element, document).each(function(ind, elem) {
elem.mousedown(function(){ elem.attr('id'); });
});
爲什麼?它出什麼問題了? –
如果問題中的$(element,document)'變爲'$(selector,context)',那麼這非常相關。你正在問一個特殊的情況下 – naveen