[英]Click event in jQuery called twice or more
我是Java語言的新手,並制作了這樣的函數結構:
var project = ... ; // it's dynamic
// first function
$('body').on('click', '.projectmonitoring', function () {
SetMonitoring(project);
});
// second function
function SetMonitoring(project) {
var tasks = ... ; // this variable produced inside Ajax
// third function
$('#save').click(function () {
// do something using project and tasks variable
});
}
每當我調用第一個函數時,就會觸發SetMonitoring函數。 我多次調用了第一個函數(單擊兩次或多次)。 當我調用第三個函數時,發生的事情是執行第三個函數的次數與調用第一個函數的次數相同。
也許我的結構是錯誤的。 希望我已經解釋清楚了。 提前致謝。
創建一個全局變量,在第二個函數中設置它,然后在第三個函數中使用它。
var value_of_project;
// first function
$('body').on('click', '.projectmonitoring', function () {
SetMonitoring(project);
});
// second function
function SetMonitoring(project) {
//set value of project here
value_of_project = "some value";
}
// third function
$('#save').click(function () {
//do something using value_of_project
});
好吧,您可以使用:$('#save')。off('click')。click(function(){...但是更好的解決方案是收回代碼。您無需將項目par傳遞給setmonitoring如果它是全局函數,則可以使用...但是在任何情況下,在ivent處理程序中附加事件處理程序都是一種反模式...
為了確保您的函數僅被調用一次,
用one
-
var project = ... ; // it's dynamic
// first function
$('body').one('click', '.projectmonitoring', function () {
SetMonitoring(project);
});
// second function
function SetMonitoring(project) {
var tasks = ... ; // this variable produced inside Ajax
// third function
$('#save').click(function () {
// do something using project and tasks variable
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.