gpt4 book ai didi

javascript - jquerymobile。双执行函数

转载 作者:行者123 更新时间:2023-12-03 06:15:55 29 4
gpt4 key购买 nike

我有这样的代码:

function getData(){
$.ajax({
url: 'http://pechati.ru/extdata/baseparts/filialsWSunsec.php',
contentType: "application/x-www-form-urlencoded;charset=utf8",
dataType: 'json',
success: function(jsonData){
//alert('Load was performed.');
console.debug('Data received.');
//jsonData = win2unicode(jsonData);

console.debug(jsonData);
$.each(jsonData,function (filial,dataFilial) {
//
//console.debug(filial);

var option = '<option value="'+filial+'" data-phone="'+ dataFilial.phone+ '" data-email="' + dataFilial.email + '"> ' + filial + '</option>';

//filial active
var activeFilial = 0;
if (parseInt(dataFilial.mainList)>0){
activeFilial++;
}
if (parseInt(dataFilial.contacts)>0){
activeFilial++;
}
if (parseInt(dataFilial.uslugi)>0){
activeFilial++;
}
if (activeFilial>0){
$('#filial-name').append(option);
}
});

},
error: function(error){
console.debug('We have a problem: ');

}
});
}

...
$(document).bind('pageinit', function() {


$('a.get-order').on('click', function () {
getData();

});
}

点击a.get-order后,getData 执行了两次。为什么会出现这样的情况呢?这是放置在的元素:

<div id="one">
...
</div>
<div id="two">
...
<a class="get-order">...</a>
</div>

第一页已加载“#one”。从它调用的页面“#two”。单击a.get-order后,我有双重执行getData()。如果我从页面“#two”调用页面“#三”并执行某个函数,它会执行三次。为什么会发生这种情况以及如何解决它?

最佳答案

您的代码:

$(document).bind('pageinit', function() {
$('a.get-order').on('click', function () {
getData();
});
}

每次初始化任何页面时运行。因此,在初始化 #one 时添加一次单击处理程序,然后在初始化 #two 时再添加一次。将其更改为

$(document).on("pageinit","#two", function(){ 
$('a.get-order').on('click', function () {
getData();
});
});

这样,当页面 #two 初始化时,单击处理程序仅添加一次。

关于javascript - jquerymobile。双执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39106610/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com