请问大侠,这个js 为什么点击事件不进入这个事件?

为了账号安全,请及时绑定邮箱和手机
在js中绑定onclick事件为什么不加括号,在html代码中必须要加?
$(document).ready(function(){
document.body.onlick =
function fun(){
alert('a');
&input type=“button” onclick=”fun()”&如上代码,我的理解在&script&代码中中不加括号是因为直接将函数赋值给onclick事件,如果加了括号就直接自动执行了,不用触发点击事件,但是不理解为什么在HTML代码中必须加括号,是因为在行间内,onclick是属于标签的内在属性,属性值是文本,所以必须加括号 ,让代码执行么?求解答,谢谢
加上括号是执行的意思,添加事件的回调函数应该就是给相应的事件属性赋值,而很明显需要把一个函数赋值给这个事件属性,而不是函数的调用结果。所以在js中的绑定是直接赋值。而在标签内的事件属性的值是由引号包裹的,代表的是当点击该元素时,执行引号内的代码,直接把引号内的代码拿出来跑,如果你不加括号,那就不会调用那个函数。不知道你能不能看懂。。
已被提问者采纳
你还没有登录,请先登录或注册慕课网帐号
54040人关注
49242人关注
19750人关注
Copyright (C)
All Rights Reserved | 京ICP备 号-2$(&body&).click(function(){})捕捉全屏点击事件时能否排除掉点击的链接,按钮等?该怎么解决_HTML JS 页面特效上载_html5论说文档__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
$(&body&).click(function(){})捕捉全屏点击事件时能否排除掉点击的链接,按钮等?该怎么解决
HTML JS 页面特效上载
html5论说文档
$(&body&).click(function(){})捕捉全屏点击事件时能否排除掉点击的链接,按钮等?该怎么解决
$("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'))
showdialog();
------解决方案--------------------
禁止冒泡就行
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&
&TITLE&demo&/TITLE&
&META http-equiv="content-type" content="text/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"&
&script type="text/javascript" src=""&&/script&
&input type="button" value="123"
id="need_hide"/&
&script type="text/javascript"&
function test()
document.body.onclick=function(e){alert("body")}
function stopPropagation(e) {
e = e || window.
if(e.stopPropagation) { //W3C阻止冒泡方法
e.stopPropagation();
e.cancelBubble = //IE阻止冒泡方法
document.getElementById('need_hide').onclick = function(e) {
stopPropagation(e);
alert('input');
------解决方案--------------------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楼的代码能实现此功能!但是弹窗,用户体验太差!
------解决方案--------------------有意思....功能不错,但是体验太差,哈哈
HTML JS 页面特效上载
html5论说文档
如果您喜欢IT行业或者对IT行业感兴趣,想开拓技术视野,欢迎加入本站官方QQ群:,在群里认识新朋友和交流技术^_^
本站联系邮箱:本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 jquery模拟点击事件 的文章

 

随机推荐