应用于父div时,锚定触发器或单击事件问题

时间:2013-01-18 19:20:04

标签: jquery css frontend

我一直在浏览几个帖子,但到目前为止,他们都没有提供任何帮助。

我有一些奇特的按钮设置如下:

<div class='orange-btn'>
<a href="url.html">BLah blah</a>
<span>Meta text</span>
</div>

我需要div上的点击事件(或任何子项,即<span>)进入锚点并导致click()函数。

截至目前,我的“浏览器标签完全崩溃”之前,我发现“超出最大调用堆栈大小”错误或只是显示<error的错误。

感谢您的帮助。

3 个答案:

答案 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,他们应该在你的网站上获得相同的体验......