直接定位元素时,jQuery 触发器未按预期运行
给定这个 HTML
<div id="section-name">
<div id="item">
...
</div>
</div>
和这个 jquery,
$("#section-name div").click(function(){
// do stuff
});
$("#item").trigger("click");
我希望 // do stuff 中的任何内容都能执行。然而,事实并非如此。如果我直接单击该元素,我会得到预期的行为。
我在触发器文档中发现的任何内容都无法帮助我了解这是否是预期的行为。
谢谢。
Given this HTML
<div id="section-name">
<div id="item">
...
</div>
</div>
And this jquery
$("#section-name div").click(function(){
// do stuff
});
$("#item").trigger("click");
I would expect whatever i have in // do stuff to execute. However, it doesn't. If I click directly on the element I get the expected behavior.
Nothing I've found in the documentation for trigger helps me understand if this is expected behavior.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的 HTML 中没有任何
#section
id,只有#section-name
。要执行// do stuff
,请将 HTML 更改为:或者使用 HTML5,执行以下操作:
然后将事件侦听器更改为以下内容(请注意缺少
#):
You don't have any
#section
id in your HTML, you have#section-name
. For// do stuff
to execute, change your HTML to this:Or with HTML5, do the following:
And then change your event listener to the following (notice the lack of the
#
):抱歉,我的错误。 HTML 中似乎存在一些重复的 ID。自我提醒...在发布之前务必进行验证!
也许这会帮助其他同样缺乏纪律的人。 :)
Sorry, my mistake. It seems that there were some duplicate IDs in the HTML. Note to self... always validate before posting!
Maybe this will help someone else with a similar lack of discipline. :)
你的 jQuery 选择器是错误的;应该是:
希望有帮助!
编辑:感谢 vzwick 的这个 fiddle。
Your jQuery Selector is wrong; it should be:
Hope it helps!
EDIT: Thank you to vzwick for this fiddle.