假設您將處理程序綁定到bind()
或on()
,並指定數據(如{ color : "red" }
)。稍後,情況會發生變化,您希望以{ color : "blue"}
觸發事件。有沒有辦法改變這種情況,而無需刪除處理程序unbind()
或off()
並重新綁定新的數據對象?有沒有辦法在使用jQuery綁定事件後更改eventData?
0
A
回答
4
沒有,有沒有辦法改變這種狀況,EVENTDATA傳入以後不能改變,因爲這是一點,數據鎖定的事件處理程序
var data = {test : 'test'};
$('element').on('click', data, function(e) {
// e.data will always be {test : 'test'}
});
data = {test: 'foo'}; // doesn't matter
原因裏面爲這是EVENTDATA的目的是爲其中將通常使用的封閉件的情況下,像
for (var i = 0; i < 5; i++) {
$("button").eq(i).on("click", { value: i }, function(event) {
var i = event.data.value;
// now i can be accessed with event.data.value without extra closures
});
}
從而改變數據的唯一途徑是重新綁定EV如果需要更改數據,或者最好使用其他方法,並且提到觸發事件處理函數,並且如果您使用jQuery來執行此操作,則可以通過使用trigger()
中的事件對象來傳遞數據
$('element').on('click', function(event) {
var data = event.custom;
});
$('element').trigger({
type: 'click',
custom: {color: 'red'}
});
$('element').trigger({
type: 'click',
custom: {color: 'blue'}
});
1
你可以在獲取數據的方法傳遞? 即
var data = {test : 'test'};
var DataGetter = function() { return data;};
$('element').on('click', DataGetter, function(e) {
var data=e.data();
});
data.test='Hello';
data = {hello: 'world'};
0
我發現了另一個我認爲會有所幫助的問題。
jQuery find events handlers registered with an object
看起來你看看jQuery的變量直接看到發生了什麼被張貼:
jQuery._data(elem, "events");
看起來這是不是安全可靠的,我不知道,如果你可以改變但它確實讓你看到它。
我認爲只是刪除事件然後添加新事件才更好。
相關問題
- 1. 改變它的src後,有沒有辦法綁定到圖像的load()事件?
- 2. 有沒有辦法使用「keydown」eventType與.bind()eventData?
- 3. 事件在模型更改後沒有綁定到指令 - AngularJS
- 4. backbone.js事件在模型更改後沒有綁定?
- 5. 有沒有辦法在X11中更改ConfigureNotify事件頻率?
- 6. XAML有沒有辦法將事件綁定到使用樣式的方法?
- 7. 有沒有辦法在後面的代碼中引用綁定
- 8. 有沒有其他方法可以在使用後更改綁定?
- 9. 有沒有辦法在javascript中獲取所有事件監聽器綁定?
- 10. 在jQuery中,有沒有辦法只綁定一次點擊?
- 11. jquery沒有綁定事件onload
- 12. 有沒有辦法綁定到Keyboard.FocusedElement?
- 13. 有沒有辦法在jQuery Cycle2插件中取消事件?
- 14. 在jQuery中更改綁定事件
- 15. 有沒有辦法確定未使用的數據綁定
- 16. jQuery在變更事件後沒有收到變更事件
- 17. 有沒有辦法在wpf中全局更改綁定的默認行爲?
- 18. 有沒有辦法使用jQuery
- 19. 我有沒有辦法在後臺捕獲KEYCODE_BRIGHTNESS_DOWN事件?
- 20. 有沒有辦法在javascript中捕捉後退按鈕事件?
- 21. 有沒有辦法傾聽Animatable.isRunning更改?
- 22. 有沒有辦法安排html更改?
- 23. jquery插件綁定更改事件
- 24. 有沒有辦法在jQuery/Javascript中結合事件?
- 25. 有沒有辦法在jQuery中委託事件之一?
- 26. 有沒有辦法在鍵盤事件中使用e.pageX/Y?
- 27. 有沒有辦法傳遞上下文來綁定jQuery?
- 28. 有沒有辦法刪除window.open事件?
- 29. 有沒有辦法停止OnItemSaving事件?
- 30. 有沒有辦法觸發事件viewDidUnload?
我認爲你必須明確你想說什麼或發佈你的代碼的一部分。 –
您可以使用.css()或.addClass()重寫 – fauverism