页面有很多元素,我想给所有元素赋一个方法,除了一个div。该怎么写呢!!

解决方案 »

  1.   

    還不如把這個DIV的方法重定義一次高效呢
      

  2.   

    $("*:not('#div1')").click(function () {
    });
      

  3.   

    $("*:not('#divid')").bind(function(){
       //your function........
    })
      

  4.   

    <html>
    <body>
    <script src="./jquery-1.4.2_mine.js" type="text/javascript"></script>
    <script>$(document).ready(function(){
    $("*:not('#Test')").bind('mousedown', function() {
    alert("ok")
    })
    })
    </script>
    <div id="Test">AAAA</div>
    <br><br><br>
    <div>BBBB</div>
    </body>
    </html>试过了不好用!!
      

  5.   

    其实不是不好用,而是LZ没搞清楚冒泡这事。这样吧,针对这个例子可以这样写<html>
    <body>
    <script src="./jquery-1.4.2_mine.js" type="text/javascript"></script>
    <script>$(document).ready(function(){
        $("body *:not('#Test')").bind('mousedown', function() {
            alert("ok");
        })
    })
    </script>
    <div id="Test">AAAA</div>
    <br><br><br>
    <div>BBBB</div>
    </body>
    </html>
      

  6.   

    确实好用了,但是还是不明白为什么加上body就可以了,请赐教。
      

  7.   

    这样写还是有点问题,就是点击空白的时候,还是不会执行。。
    其实我是想“在页面不管点击什么,都会隐藏一个div,除了点击div自己才不会显示。
    有点晕!!
      

  8.   

    你要想清楚一件事 你给所有的元素包括空白绑定一个事件的时候
    div也好div后面的body也好,都被绑定了这个方法
    你点这个div没触发事件,但是他后面的body触发了。所以你禁用冒泡就OK乐
      

  9.   


    $(document).ready(function(){
        $("*").bind('mousedown', function() {
    if(this.id == "Test") return false;
            alert("ok");
    return false;
        })
    })
    这2个return false一定要的~
    你在alert("ok");地方插入你要的代码
      

  10.   


    谢谢大侠,终于明白了,但是还有个小疑问,第二个return false;有什么用呢,我试了删除第二个也可以
      

  11.   

    大虾,我还是没懂第二个return false 的含义,不加上会弹出两次alert,为什么会这样。
      

  12.   

    说了 是防止事件冒泡的啊
    如果你不return false 这个外面的element也会触发事件
      

  13.   

    同问。为什么要有第二个return false啊