2016-09-28 28 views
0

我有这样的:JQuery的事件

<button class="btn btn-primary">Click me</button> 

那么这个:

$('body').on('click', '.btn', function() { console.log('foo'); }); 

每当我按一下按钮不记录 “富”。为什么?


解决方案:我不得不采取有关该事件的传播服务。

+0

检查控制台中的错误 – guradio

+0

没有任何错误。它实际上在任何其他情况下工作,但不在我的项目... – zangarmarsh

+0

你能解释你的解决方案是什么?它看起来像是通过未包含在原始问题中的东西来解决的,但可以用于其他有类似问题的其他人。 –

回答

0

尝试

$(document).on('click', '.btn', function() { console.log('foo'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="btn">Click Me</button>

相反,因为它会在文档级别注册事件,它应该工作。

+0

我不明白,你的代码和我的代码有什么不同?顺便问一下,问题是我正在我的问题正下方说的管理事件传播的方式。 – zangarmarsh

+0

正如我从我的经验中得出的一样,将一个事件附加到一个文档通常意味着你将在速度方面有更多的安慰(不是那么明显),并且它一定会找到你的元素,如果它存在,它不会在后面加载或使用ajax时要注意,将事件附加到“body”意味着浏览器必须首先找到body,然后才能找到body,有时可能会失败。 – Imaginaroom