我一直在浏览几个帖子,但到目前为止,他们都没有提供任何帮助。
我有一些奇特的按钮设置如下:
<div class='orange-btn'>
<a href="url.html">BLah blah</a>
<span>Meta text</span>
</div>
我需要div上的点击事件(或任何子项,即<span>
)进入锚点并导致click()
函数。
截至目前,我的“浏览器标签完全崩溃”之前,我发现“超出最大调用堆栈大小”错误或只是显示<error
的错误。
感谢您的帮助。
答案 0 :(得分:1)
这是因为事件冒泡 - 点击链接后,该点击将传播到div,这会触发链接上的点击, ad无限期。
添加以下内容以解决此问题:
$('a').on('click',function(e) {
e.stopPropagation();
});
(如果您的链接是动态添加的,请使用$(document).on('click','a',function(e) {...});
。)
答案 1 :(得分:0)
试试这个
$('div').children().click(function (){
alert();
});
在这里你需要触发一次点击
答案 2 :(得分:0)
为什么你首先需要div?为什么不做这样的事情:
<a href="url.html" class="orange-button">
<span class="label">Bla Bla</span>
<span class="meta">Meta data</span>
</a>
如果将.orange按钮设置为显示为块,则应获得完全相同的效果。像这样:
.orange-button {
display: block;
/* the other styles that where on your div */
}
.orange-button .label {
/* the styles that where on your a */
}
.orange-button .meta {
/* the styles that where on your span */
}
除非确实有必要,否则我坚信不使用任何js。还有一些用户在那里放弃了js,他们应该在你的网站上获得相同的体验......