2016-09-28 33 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