在模态面板中选择框更改。我正在发出ajax请求并加载模态面板数据取决于响应。
我看到最初只有一个请求在第一次尝试时触发。但随着选择选项的次数,它会继续增加。
下面是我的脚本
$(".dds").msDropDown();
$('#dropdown').off('change');
$('#dropdown').on('change', takeAction);
function takeAction(event){
event.preventDefault();
var colour = $('#colors .selected').attr('data-color');
console.log(colour);
new Ajaxinator().jsonPost({
url :$(event.currentTarget).val(),
data : {
name : $(event.currentTarget).attr('title'),
colour : colour
},
success: function (response)
{
$('#dropdown').off('change');
$('#Data').html(response.Data);
$('#dropdown').off('change',takeAction);
}
});
};
我认为这是因为新绑定为#dropdown和onchange函数创建的每个ajax请求都是多次调用。任何人都可以帮助我。
答案 0 :(得分:0)
你可以尝试一下吗?
var oAJAXRequest = false; //GLOBAL VARIABLE
$("#dropdown").unbind('change');
$("#dropdown").bind('change', takeAction);
function takeAction(){
if(oAJAXRequest != false){
return;
}
event.preventDefault();
var colour = $('#colors .selected').attr('data-color');
oAJAXRequest = $.ajax({
type: 'POST',
url: $(event.currentTarget).val(),
data : {
name : $(event.currentTarget).attr('title'),
colour : colour
},
success: function(data) {
$('#Data').html(response.Data);
oAJAXRequest = false;
},
error: function(jqXHR, sMessage, oException) {
oAJAXRequest = false;
}
});
}
答案 1 :(得分:0)
我用过
$('#dropdown').off('change',takeAction);
为我工作。