您需要將事件處理程序綁定到綁定時存在於DOM中的元素。
如果你調用你的腳本:
<script>
$('.smileys img').click(function() {
alert("hello");
});
</script>
<div class="smileys">
<img src="images/smileys/mad.gif"/>
</div>
然後你需要將事件委託給的東西存在,如window
,document
,或body
:
$('body').on('click', '.smileys img', function() {...});
或者,您可以等待文檔準備就緒,然後再綁定事件:
<script>
jQuery(function ($) { //aliasing shortcut for $(document).ready...
$('.smileys img').click(function() {
alert("hello");
});
});
</script>
<div class="smileys">
<img src="images/smileys/mad.gif"/>
</div>
Document.ready導致在完成頁面的所有內容之後,但在圖像和其他外部內容加載完成之前執行此功能。
或者,也可以簡單地將<script>
後的元件在DOM創建的:
<div class="smileys">
<img src="images/smileys/mad.gif"/>
</div>
<script>
$('.smileys img').click(function() {
alert("hello");
});
</script>
如果綁定的情況下,這些元素不會在DOM,這意味着存在的選擇器是空,這意味着沒有事件被實際綁定。 – zzzzBov 2013-04-25 16:20:35
您是否嘗試過使用'.on'方法? $(「。smileys img」)。on(「click」,function(){}); – 2013-04-25 16:21:42
@zzzzBov我明白,但我不知道該怎麼做來解決這個問題。 – Jerry 2013-04-25 16:21:46