读书人

$(quot;bodyquot;).click(function(){})捕捉全

发布时间: 2012-04-03 12:38:19 作者: rapoo

$("body").click(function(){})捕捉全屏点击事件时能否排除掉点击的链接,按钮等?
$("body").click(function(){})捕捉全屏点击事件时能否排除掉点击的链接,按钮等?
基于:jquery
现在要求点击整个页面的 时候要弹出窗口,所以我加了$("body").click(function(){})。
弹窗能正常弹出,但是当点击了body里的链接或按钮等时,也执行了弹窗,郁闷啊,
怎么才能排除掉呢?
如果body里有链接<a></a>或者button,就不执行$("body").click(function(){showdialog();})这里的弹窗,而且执行自己的功能,如跳转页面等(现在会先弹窗后跳转)。

[解决办法]
恩,这是个问题。我也等答案。
[解决办法]

HTML code
jQuery(function($) {           $("body").click(function(e){                 if ($(e.target).is('a')||$(e.target).is('input:button'))                     return;                 else{                     showdialog();                 }                            });                    });
[解决办法]

禁止冒泡就行

HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD>  <TITLE>demo</TITLE>  <META http-equiv="content-type" content="text/html;charset=gbk"/>  <META NAME="Generator" CONTENT="CSS">  <META NAME="Author" CONTENT="zhangqian">  <META NAME="Keywords" CONTENT="mydemo">  <META NAME="Description" CONTENT="this is my demo">  <LINK rel="stylesheet" type="text/css" href=""></LINK>  <style type="text/css">            body            {                            }  </style>      <script type="text/javascript" src=""></script>  </HEAD>  <BODY>                <input type="button" value="123"  id="need_hide"/>        <script type="text/javascript">                function test()                {                        document.body.onclick=function(e){alert("body")}                                        }                test();                function stopPropagation(e) {                    e = e || window.event;                    if(e.stopPropagation) { //W3C阻止冒泡方法                        e.stopPropagation();                    } else {                        e.cancelBubble = true; //IE阻止冒泡方法                    }                }                document.getElementById('need_hide').onclick = function(e) {                    stopPropagation(e);                    alert('input');                }        </script> </BODY></HTML>
[解决办法]
2楼是正解
[解决办法]
这会是很让用户反感的行为。你会失去很多新旧用户。
[解决办法]
$("body").click(function(e){
//e是触发事件的元素,根据这个来排除你想排除的就可以了
})
[解决办法]
冒泡的不要!但是楼主的方法是值得商榷的,最好不要那么干
[解决办法]
你在其他特别的元素上重新设置onclick事件覆盖原事件不就好了?
[解决办法]
JScript code
        $(document).click(function(e){            var target = $(e.target);            //if(!(target.is('a') || target.is('input[type=button]') || target.is('button'))){            if(!target.is('a, input[type=button], button')){                showdialog();            }        });

[解决办法]
$("body").click(function(e){
if(/a|div|span|input/i.test(e.srcElement.tagName)){
alert("OK")
}
});
想屏蔽什么,自己加
[解决办法]
从二楼三楼学到挺多
[解决办法]
2楼的代码能实现此功能!

但是弹窗,用户体验太差!
[解决办法]
有意思....功能不错,但是体验太差,哈哈

读书人网 >JavaScript

热点推荐