我想使用one jQuery函數,它只執行一次特定函數,但與on jQuery函數結合使用,因爲元素還沒有呈現。jQuery - 與一個()和on()函數的組合
所以,我需要以這種方式使用'on'函數來綁定未渲染元素的函數。
$(document).on('click',',myElement',function(){
});
如何實現'one'功能,以執行我的代碼只爲第一次單擊元素?
我想使用one jQuery函數,它只執行一次特定函數,但與on jQuery函數結合使用,因爲元素還沒有呈現。jQuery - 與一個()和on()函數的組合
所以,我需要以這種方式使用'on'函數來綁定未渲染元素的函數。
$(document).on('click',',myElement',function(){
});
如何實現'one'功能,以執行我的代碼只爲第一次單擊元素?
.one()
方法支持事件委託。這將意味着回調每個匹配元素運行一次,而不是一次:
$(document).one('click', '.myElement', function() {
// Do stuff
});
但是,如果你的意思是你想要的事件處理程序,爲每個選擇匹配的元素執行一次,最簡單的解決方案可能是在處理程序執行後向元素添加一些數據。然後,您可以檢查是否存在該數據以確定是否繼續使用事件處理程序:
$(document).on('click', '.myElement', function() {
if (!$(this).data("done")) {
// Do stuff
} else {
$(this).data("done", true);
}
});
它總共運行一次,而OP相對每個元素想要一次。 – pimvdb
啊,是的,這是更有意義。這個問題並不清楚。 –
您是指每個元素或總共一次? – pimvdb
該函數正在執行一些計算並對其他元素執行操作。如果該功能執行兩次或更多,則完全沒有問題。無論如何,我覺得每次點擊執行一些JavaScript代碼是不對的,因爲只有執行一次就足夠了。這是我的擔憂。 – gotqn