簡體   English   中英

jQuery:將JS函數綁定到所有選定元素

[英]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()使用thisselectCur()可以執行以下操作:

$('.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM