function exampleAddOption1(val, dat, pr) {
var cases = 0;
var bottles = 0;
var price = 0;
alert("00");
$('#itt').append('<option value = "' + dat + '">' + val + '</option>');
$('#autocomplete').val("");
$(".logindiv").css("display", "block");
$("#case").focus();
$("#case").keydown(function (e) {
var code = e.which;
if (code == 13) {
$("#bottle").focus();
}
});
$("#bottle").keydown(function (e) {
var code = e.which;
if (code == 13) {
$(".lgbtn").focus();
}
});
alert("11");
$(".lgbtn").click(function () {
if ($("#case").val() != "") {
cases = $("#case").val();
} else {
cases = 0;
}
if ($("#bottle").val() != "") {
bottles = $("#bottle").val();
} else {
bottles = 0;
}
$("#case").val("");
$("#bottle").val("");
$(".logindiv").css("display", "none");
$('#qty').append('<option value = "' + cases + ',' + bottles + '">' + cases + 'Cs, ' + bottles + 'Btl</option>');
cases = 0;
bottles = 0;
$(".logindiv2").css("display", "block");
$("#price").val(pr);
$("#price").focus();
alert("22");
$("#price").keydown(function (e) {
var code = e.which;
if (code == 13) {
$(".lgbtn2").focus();
}
});
$(".lgbtn2").click(function () {
alert("33");
price = $("#price").val();
$('#amt').append('<option value = "' + price + '">' + price + '</option>');
$(".logindiv2").css("display", "none");
$("#autocomplete").focus();
});
});
}
答案 0 :(得分:0)
您的问题可以简化为以下代码段。
$("#test1").click(function () {
console.log("1");
$("#test2").click(function () {
console.log("2");
$("#test3").click(function () {
console.log("3");
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="test1" type="button" value="test1"/>
<input id="test2" type="button" value="test2"/>
<input id="test3" type="button" value="test3"/>
&#13;
单击test1,test2,test3中的按钮。 test1 click为test2添加了一个处理程序。 test2 click为test3添加了一个处理程序。控制台日志将显示1,2,3。再次,单击test1,test2,test3顺序中的按钮。 test1 click为test2添加了另一个处理程序。 Test2现在有两个处理程序。单击test2时,将执行两个处理程序,每个处理程序为test3添加一个额外的处理程序。 Test3现在有三个处理程序。单击test2时,会执行三个处理程序。控制台日志将显示1,2,3,3,3,3。
一种可能的解决方案是在添加新的点击事件处理程序之前删除现有的点击事件处理程序。以下代码段演示了此解决方案。
$("#test1").click(function () {
console.log("1");
$("#test2").off("click");
$("#test2").click(function () {
console.log("2");
$("#test3").off("click");
$("#test3").click(function () {
console.log("3");
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="test1" type="button" value="test1"/>
<input id="test2" type="button" value="test2"/>
<input id="test3" type="button" value="test3"/>
&#13;
单击按钮test1,test2,test3。控制台显示1,2。3.再次单击按钮test1,test2,test3。控制台根据需要显示1,2,3。