在页面上有几个添加按钮(li .plus
)。
当您点击“添加”按钮并假设json.success
为false时,它将通过$.colorbox
插件弹出
弹出窗口从href:"/Handle/Postcode/?val" + Val
弹出窗口中有一个提交按钮(#submitButton
),当我点击提交按钮时,它会保持弹出警报框几次,我不明白为什么会发生这种情况?如何解决?
$("li .plus").click(function(event) {
event.preventDefault();
var Val;
Val = $('#id').val()
$.getJSON(Address +"/Handle/Add", {
Val:Val
}, function(json) {
if (json.success == "false" && json.error == "NoArea") {
$.colorbox({
width:"450px",
transition:"none",
opacity:"0.4",
href:"/Handle/Postcode/?val" + Val
});
$("#submitButton").live('click', function() {
var PostCodeArea = $("#deliveryAreaPostcode").val();
alert(PostCodeArea);
//Why does it popup a few times?
});
}
if (json.success == "true") {
Backet();
}
});
});
答案 0 :(得分:3)
这很简单,因为你使用.live()
函数来绑定你的点击处理程序。如果该代码执行多次,则绑定发生的次数不止一次。
您可以尝试跟踪绑定的状态,只有在它不存在时才应用它,或者您可以使用onClick
attr调用html中的click函数。
编辑:只是为了澄清我的意思是 -
<强> HTML 强>
<button id='submitButton' onclick="displayAreaCode();">Submit</button>
<强> JS 强>
function displayAreaCode(){
var PostCodeArea = $("#deliveryAreaPostcode").val();
alert(PostCodeArea);
}