Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击处理程序多次触发,解除绑定不工作_Javascript_Jquery - Fatal编程技术网

Javascript 单击处理程序多次触发,解除绑定不工作

Javascript 单击处理程序多次触发,解除绑定不工作,javascript,jquery,Javascript,Jquery,我的jQuery单击处理程序有问题。当我点击它时,它似乎不止开火一次。我尝试使用.unbind方法,但这破坏了我的另一个jQuery。为什么会发生这种情况?我正试图建立一个计算器应用程序,我想当点击的数字被推到一个数组。这个函数起作用了,只是做了太多次。这是我的javascript。每个按钮都是一个带有保留类的div,即“7”按钮是.7 这是密码 $(document).ready(function(){ $("#hidden > div").mouseover(function(){

我的jQuery单击处理程序有问题。当我点击它时,它似乎不止开火一次。我尝试使用.unbind方法,但这破坏了我的另一个jQuery。为什么会发生这种情况?我正试图建立一个计算器应用程序,我想当点击的数字被推到一个数组。这个函数起作用了,只是做了太多次。这是我的javascript。每个按钮都是一个带有保留类的div,即“7”按钮是.7

这是密码

$(document).ready(function(){
$("#hidden > div").mouseover(function(){
    $(this).css('background-color','red');
$("#hidden > div").mouseleave(function(){
    $(this).css('background-color','black');
$("div.seven").click(function(){
    primary.push(7);
});
$("div.eight").click(function(){
    primary.push(8);
});
$("div.nine").click(function(){
    primary.push(9);
});
$("#.equals").click(function(){
alert(primary);
});
});
});
});
</script>
$(文档).ready(函数(){
$(“#hidden>div”).mouseover(函数(){
$(this.css('background-color','red');
$(“#hidden>div”).mouseleave(函数(){
$(this.css('background-color','black');
$(“第七部分”)。单击(函数(){
主推(7);
});
$(“第八分区”)。单击(函数(){
主推(8);
});
$(“div.nine”)。单击(函数(){
主推(9);
});
$(“#.equals”)。单击(函数(){
警报(主要);
});
});
});
});

因为每次鼠标进入
#hidden
元素内的
div
时,都会注册一个click/mouseleave处理程序

在正常情况下,不应在事件处理程序中注册事件处理程序

试一试

$(document).ready(function () {
    var primary = [];
    $("#hidden > div").mouseover(function () {
        $(this).css('background-color', 'red');
    });
    $("#hidden > div").mouseleave(function () {
        $(this).css('background-color', 'black');
    });
    $("div.seven").click(function () {
        primary.push(7);
    });
    $("div.eight").click(function () {
        primary.push(8);
    });
    $("div.nine").click(function () {
        primary.push(9);
    });
    $("#.equals").click(function () {
        alert(primary);
    });
});