[英]jQuery: Bind JS Function to all Selected Elements
我確定這是一個簡單的問題,但在這里沒有找到適用的答案。 我有這樣的代碼:
$('.thumbImg').mouseout(function(){selectCur()});
//selectCur() is a pure-JS function defined elsewhere in the document
但是該函數僅綁定到類.thumbImg
的第一個元素。 通常,我會使用$(this)
,但這在這里不起作用(除非我做錯了)。
我想我的最后一招是for循環,但是我敢肯定有辦法避免這種情況。
謝謝!
this
不起作用的原因是它在您的代碼中是function() {}
的本地對象,而不是selectCur()
函數的selectCur()
。
如果要在selectCur()
使用this
, selectCur()
可以執行以下操作:
$('.thumbImg').mouseout(selectCur);
方法是創建一個匿名函數/閉包,以調用您的函數並在mouseout中引用它。 取而代之的是,您所要做的只是指向您的函數(此處不調用它,在此不使用no ()
),並且在事件觸發時將被調用。 您不需要功能即可指向功能。 只需指出它,它將起作用。
不要以為這是緩存問題,這是上下文問題。 通過將$ this傳遞到selectCur進行修復。
$('.thumbImg').mouseout(function(){selectCur($(this))});
甚至
$('.thumbImg').mouseout(selectCur);
然后selectCur可以使用$(this); 我認為第一種解決方案更好,因為selectCur可以在其他地方使用,因此您可以在必要時傳遞該節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.