采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
w3c标准文档中有注明“.trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。”而page1页面有两个class为component的元素,说明该方法只对第一个元素起作用。如何解释?
你这个摘出来的话理解应该是不太正确的。以下是 http://www.w3school.com.cn/jquery/event_triggerhandler.asp 中的部分原文
// triggerHandler() 方法触发被选元素的指定事件类型。但不会执行浏览器默认动作,也不会产生事件冒泡。
// triggerHandler() 方法与 trigger() 方法类似。不同的是它不会触发事件(比如表单提交)的默认行为,而且只影响第一个匹配元素。
按这个理解,如果DOM结构是(如果要测试代码,注意 引入 jquery.js 文件)
<body>
<div class=
"parent"
>
"child"
></div>
</div>
</body>
<script type=
"text/javascript"
src=
"jquery.js"
></script>
$(
'div,body'
).on(
'click'
,
function
(){ console.log(
this
'我被触发了'
)});
</script>
测试代码是:
'div'
).trigger(
);
// 所有 div 都被触发了,并且 body 也会有 click 事件,最终返回 所有匹配的元素[ DIV.parent , DIV.child , DIV.child ]
// - DIV.parent 被触发
// - - BODY 被触发
//
// - DIV.child[0] 被触发
// - - DIV.parent 被触发
// - - - BODY 被触发
// - DIV.child[1] 被触发
代码是:
).triggerHandler(
// 第一个DIV.parent 被触发了,返回 undefined
// 没有然后了,这个东西不向上传播,不会去触发 body 的 click 事件
登录后可查看更多问答,登录/注册
用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告
1.2k 9
1.4k 6
1.0k 6
2.0k 5
965 5
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号