首頁 > web前端 > js教程 > 主體

為什麼jquery使用click綁定的事件無效?

黄舟
發布: 2017-06-27 10:14:24
原創
2301 人瀏覽過

jquery使用click綁定的事件無效

$(this).children(":last").prev().after("<div class=&#39;bounty-add&#39;><a target=&#39;_blank&#39; href=&#39;bounties.php#/p=add&XID=" + playerId + "&#39;>[Bounty]</a></div>"); 
$(this).children(":last").prev().after("<div class=&#39;info-add&#39;><a href=&#39;#&#39;>[Refresh]</a></div>");        
$("div.bounty-add").css(addStyle);
$("div.info-add").css(addStyle);
         
         
$(this).children(":last").prev().children("a").click(function() {
   alert("Hello");
});
登入後複製

相關基本程式碼如上,Refresh這個a元素可以順利獲取,但就是綁定的click事件無效,在chrome「開發者工具」裡"Elements"的「Event Listeners」也找不到有效綁定。
上邊基本程式碼所加入的dom都有效,外層是兩個each循環,不過感覺應該沒啥影響,所有程式碼都能順利執行,包括綁定這一步。就是執行完畢之後去點那個a元素無效,也找不到綁定了這個function。 。 。 。 。 。 。

$(this).children(":last").prev().children("a").on("click",function() {
   alert("Hello");
});
登入後複製
登入後複製

on我也試過,一樣無效,好像這兩個基本上一樣?
因為a元素本身就有可點選屬性,所以點擊之後,還是會回應其原始的事件,例如href=‘#’,就會在網址列最後加上一個#。 。 。 。不知道會不會是因為原始事件涵蓋了後加的事件? 。 。 。 。 。

你之前的綁定是

$(this).children(":last").prev().children("a").on("click",function() {
   alert("Hello");
});
登入後複製
登入後複製

與普通click綁定一樣
試試這樣綁定

$(this).on("click",".info-add a",function() {
   alert("Hello");
});
登入後複製

你的元素是動態生成的嗎?
如果是的話用live或delegate綁定

live jquery1.9就移除了啊,現在倒不是找不到元素或無法綁定,而是綁定了之後無效。
我直接把a改成p元素,click listeners裡面也有,但是那個alter("hello");怎麼樣都無法觸發。 。 。 。 。 。

首先,使用firebug查看是否頁面出現了腳本錯誤
再次,確認你的程式碼找到了a元素
最後。你可以使用

$(document).on("click",".info-add",function(){
alert("ok")
})
登入後複製

如果再不行,請發完整的程式碼給我

#

以上是為什麼jquery使用click綁定的事件無效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板