我有一件很奇怪的事情發生在我身上。我從來沒有見過這個。我不是在jQuery的/ JavaScript的很內行,但我外行眼裏,這看起來瘋狂...jQuery id-開始 - 觸發器不工作
正在發生的事情是,如果沒有alert('hello')
的$(document).ready
作用下,ID-開始,有選擇不觸發(即不提醒「再見」)。如果我在$(document).ready)
函數下面加上alert('hello')
,突然出現alert('goodbye')
的字樣。
這怎麼可能?
<script type="text/javascript">
$(document).ready(function(){
alert('hello');
$('a[id^="hash-"]').click(function(e){
e.preventDefault();
alert('goodbye');
});
});
</script>
我自己也嘗試用。對():
<script type="text/javascript">
$(document).ready(function(){
alert('hello');
$('a[id^="hash-"]').on('click', function(e){
e.preventDefault();
alert('goodbye');
});
});
</script>
元素最初添加在頁面加載,但可以改變的,如果你篩選bootgrid表中的HTML,所以我改成了.on()
正如評論中所建議的那樣。
<td>
<a id="hash-1" href="#" data-row-id="1">
<i class="zmdi zmdi-arrow-left-bottom" title="Select this site"></i>
</a>
</td>
我又試圖這樣(因爲在上述圖標所在的原<td>
也是動態創建的):
$(document).on('click', 'a[id^="hash-"]', function(e){
e.preventDefault();
alert('goodbye');
});
而且不成功......
任何幫助將不勝感激。
你是如何將頁面上的元素? –
檢查事件是否實際綁定到元素。 –
是否動態添加元素?如果您需要委派事件,請使用'on'方法而不是'click'。我的本能說「是」 – epascarello