html代码里有一个click时间控制显示div ,div里面有一个button。
把代码简化如下。
<a href="#game" onclick="click1()"><img /></a>
<div> <input type="button" id="button1" /> </div>在js代码简化如下function click1() {
    //button1 click事件。
    $("#button1").click(function () {
        alert("button1 click demo");
    });
}
可是当我点了<a>标签n次后,然后点一次button,alert也就弹出n次。
断点发现,click里面执行了n次。
求解决方法。

解决方案 »

  1.   

    你点一次a标签 就给button加了一个click事件
      

  2.   

    这个,本来就是,你点击一下,alert()一下。。
      

  3.   

    如果click1 先点击了n下,那么点击一下button就alert  N下。
      

  4.   

    你就直接在标签里写事件就是了 干嘛非要点击a标签才给按钮加事件
    如果非要这样 那就判断button有没有onclick事件 没有的话加 否则 就不加了
      

  5.   

    因为a标签的事件里还要写其他代码。 那问一下怎么判断有没有click事件?另外一个帖子是因为,一不小心,帖子发了两遍。
      

  6.   


    function click1() {
        //先取消 button1 click事件。
    $("#button1").unbind('click');
    //button1 click事件。
        $("#button1").click(function () {
            alert("button1 click demo");
        });
    }
      

  7.   

     谢谢你,这样可以了,不过还想知道怎么判断是否已绑定上click事件,有没有什么好方法啊。
      

  8.   

    $("#button1").click(function () {
            alert("button1 click demo");
        });
    function click1() {
        //button1 click事件。
        $("#button1").click();
    }
      

  9.   

    function click1() {
        //button1 click事件。
        $("#button1").trigger('click');
    }
    $("#button1").click(function () {
        alert("button1 click demo");
    });
    还有,我忍不住想说一句,为什么老喜欢这样写:<a href="#game" onclick="click1()"></a>?
    <a href="#game"></a>
    $('a').click(click1);看起来不是更清爽吗。。
      

  10.   

    如果有多个a标签都有click事件,个人比较喜欢用id来区分找到元素。你的方法实现我要的效果还是有点困难啊。
      

  11.   

    在绑定方法的外面给个boolean值开始为true,在函数外面判断下这个值是true时进入$("#button1").click(function () {赋值为false})这样就好了