给定这个HTML
<div id="section-name">
<div id="item">
...
</div>
</div>
这个jquery
$("#section-name div").click(function(){
// do stuff
});
$("#item").trigger("click");
我希望我在//do stuff中的任何东西都执行。然而,事实并非如此。如果我直接点击元素,我将得到预期的行为。
我在trigger的文档中没有找到任何东西可以帮助我理解这是否是预期的行为。
谢谢。
您的HTML中没有任何#section
id,您有#section-name
。要执行// do stuff
,将HTML更改为:
<div id="section">
<div id="item">
...
</div>
</div>
或者使用HTML5,执行以下操作:
<section>
<div id="item">
...
</div>
</section>
然后将事件侦听器更改为以下内容(注意缺少#
):
$("section div").click(function(){
// do stuff
});
对不起,我错了。看起来HTML中有一些重复的id。提醒自己…在发布之前一定要验证!
也许这将帮助其他类似缺乏纪律的人。:)
你的jQuery选择器错误;应该是:
$("#section-name div").click(function(){
// do stuff
});
$("#item").trigger("click");
希望有帮助!
编辑:感谢vzwick的演奏