我想实现一个功能:
    有一个DIV,点击页面其他地方(包括页面iframe里面),就隐藏此DIV。jquery能实现吗?我用blur事件实现了一下,但是效果不是很好,鼠标挪出去有时候就会隐藏,而不是点击的时候隐藏。很郁闷。有没有高手帮个忙。

解决方案 »

  1.   

    gb1.html:
    <body>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
    其他内容
    其他内容
    其他内容
    其他内容
    其他内容
    其他内容
    <iframe src="gb3.html"></iframe>
    其他内容
    其他内容
    其他内容
    其他内容
    <div id="d">
    DIV DIV DIV <br/>
    DIV DIV DIV <br/>
    DIV DIV DIV <br/>
    </div>
    <script language="javascript">
    document.domain = 'localhost';//这里根据你的域名而改变,我是本地测试,所以才用这个
    $(document).click(function(e){
    var d = $("#d");
    if(e.target != d[0]){
    d.hide();
    }
    })
    </script>
    </body>
    gb3.html
    <body>
    12312313
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script><script>
    document.domain = 'localhost';//////////////////////////
    $(document).click(function(e){
    $("#d",parent.document).hide();
    })</script>
    </body>
      

  2.   

    最开始我也是这个思路,用click事件.但是存在一个致命问题,就是我不可能把所有iframe里面的页都写上onclick事件吧.尤其是网站,iframe下还有可能套iframe 所以不一定那个页面在第几层.所以parent()数量不能定,用top也不合适.
    我现在的做法是把该div先focus(),在blur事件隐藏.但是会有意外情况出发blur事件,所以我感觉不是很好.有没有其他事件呢.
      

  3.   

    判断所点击控件的id,是不是这个div,不是的话就隐藏
      

  4.   

    你用$("#div1").Click()不要用blur()或者mouseover/on什么的
      

  5.   

    用click的话,iframe里面的怎么办?
    点击iframe根本就不会调用本页的任何click事件.大侠们,试试再发言行吗
      

  6.   

    你可以想想,外围的一个网页把你的网页套住,就可以改变你的网页的onclick事件了,那样的话也太危险了。