jQuery綁定事件不執(zhí)行但alert后可以正常執(zhí)行
更新時間:2014年06月03日 09:53:41 作者:
這篇文章主要為大家解決下為什么jQuery綁定事件不執(zhí)行而alert后可以正常執(zhí)行,需要的朋友可以參考下
因為我不知道怎么描述這個問題,故標(biāo)題起的這么坑爹
主要過程是這樣的,今天我寫一個類似于百度知道那樣有提問答案的頁面,所有的數(shù)據(jù)都是頁面第一次加載時通過ajax得到的
希望實現(xiàn)的效果是提問者可以通過店家每個答案后面的星星符號選擇采納此答案,被采納的答案星星圖標(biāo)會變成全黑的。
開始我是這樣寫的
$('.choose_right_answer').bind('click',function(){
if(currentUser==questioner) {
if ($(this).attr("src") == "img/star_fav_empty.png")
$(this).attr("src", "img/star_fav.png");
else
$(this).attr("src", "img/star_fav_empty.png");
}
});
.choose_right_answer是每個星星class名
運(yùn)行之后點(diǎn)擊星星沒有反應(yīng)
于是我在上面所示代碼段之前加上了一個alert("test")
此時加載頁面后彈出對話框test之后,星星圖標(biāo)上綁定的事件可以正常執(zhí)行。
上網(wǎng)搜了一通答案,得到的結(jié)果是由于所有的這些答案的節(jié)點(diǎn)都是動態(tài)生成的,因此可能在這些節(jié)點(diǎn)還沒有執(zhí)行完時,就執(zhí)行了事件綁定,以至于并沒有真正將事件綁定到生成的這些答案的節(jié)點(diǎn)。
而加上alert之后,可以明顯看到,alert語句在所有數(shù)據(jù)得到后才執(zhí)行,確保了事件綁定在數(shù)據(jù)加載完之后執(zhí)行,因此事件成功綁定到了各個回答上。
http://img.blog.csdn.net/20140531202827265
解決方法,使用jQuery中的on來綁定事件
$("#answer_wrap").on('click','.choose_right_answer',function(){
if(currentUser==questioner) {
if ($(this).attr("src") == "img/star_fav_empty.png")
$(this).attr("src", "img/star_fav.png");
else
$(this).attr("src", "img/star_fav_empty.png");
}
});
answer_wrap是所有回答所在塊的id
所有在這個塊里class為choose_right_answer的元素如果發(fā)生點(diǎn)擊則事件冒泡到answer_wrap,執(zhí)行對應(yīng)函數(shù),其余在這個塊中的元素發(fā)生點(diǎn)擊事件則忽略
這樣就可以解決動態(tài)加載數(shù)據(jù)中事件綁定的問題
主要過程是這樣的,今天我寫一個類似于百度知道那樣有提問答案的頁面,所有的數(shù)據(jù)都是頁面第一次加載時通過ajax得到的
希望實現(xiàn)的效果是提問者可以通過店家每個答案后面的星星符號選擇采納此答案,被采納的答案星星圖標(biāo)會變成全黑的。
開始我是這樣寫的
復(fù)制代碼 代碼如下:
$('.choose_right_answer').bind('click',function(){
if(currentUser==questioner) {
if ($(this).attr("src") == "img/star_fav_empty.png")
$(this).attr("src", "img/star_fav.png");
else
$(this).attr("src", "img/star_fav_empty.png");
}
});
.choose_right_answer是每個星星class名
運(yùn)行之后點(diǎn)擊星星沒有反應(yīng)
于是我在上面所示代碼段之前加上了一個alert("test")
此時加載頁面后彈出對話框test之后,星星圖標(biāo)上綁定的事件可以正常執(zhí)行。
上網(wǎng)搜了一通答案,得到的結(jié)果是由于所有的這些答案的節(jié)點(diǎn)都是動態(tài)生成的,因此可能在這些節(jié)點(diǎn)還沒有執(zhí)行完時,就執(zhí)行了事件綁定,以至于并沒有真正將事件綁定到生成的這些答案的節(jié)點(diǎn)。
而加上alert之后,可以明顯看到,alert語句在所有數(shù)據(jù)得到后才執(zhí)行,確保了事件綁定在數(shù)據(jù)加載完之后執(zhí)行,因此事件成功綁定到了各個回答上。
http://img.blog.csdn.net/20140531202827265
解決方法,使用jQuery中的on來綁定事件
復(fù)制代碼 代碼如下:
$("#answer_wrap").on('click','.choose_right_answer',function(){
if(currentUser==questioner) {
if ($(this).attr("src") == "img/star_fav_empty.png")
$(this).attr("src", "img/star_fav.png");
else
$(this).attr("src", "img/star_fav_empty.png");
}
});
answer_wrap是所有回答所在塊的id
所有在這個塊里class為choose_right_answer的元素如果發(fā)生點(diǎn)擊則事件冒泡到answer_wrap,執(zhí)行對應(yīng)函數(shù),其余在這個塊中的元素發(fā)生點(diǎn)擊事件則忽略
這樣就可以解決動態(tài)加載數(shù)據(jù)中事件綁定的問題
您可能感興趣的文章:
- JQuery實現(xiàn)當(dāng)鼠標(biāo)停留在某區(qū)域3秒后自動執(zhí)行
- JQuery給元素綁定click事件多次執(zhí)行的解決方法
- jquery阻止后續(xù)事件只執(zhí)行第一個事件
- jquery $.ajax各個事件執(zhí)行順序
- jquery 事件執(zhí)行檢測代碼
- JQuery 給元素綁定click事件多次執(zhí)行的解決方法
- 淺析jquery如何判斷滾動條滾到頁面底部并執(zhí)行事件
- Jquery on方法綁定事件后執(zhí)行多次的解決方法
- JQuery中DOM加載與事件執(zhí)行實例分析
- 淺談js在html中的加載執(zhí)行順序,多個jquery ready執(zhí)行順序
- 使用jQuery加載html頁面到指定的div實現(xiàn)方法
- Jquery在指定DIV加載HTML示例代碼
- jQuery實現(xiàn)在HTML文檔加載完畢后自動執(zhí)行某個事件的方法
相關(guān)文章
jQuery查詢數(shù)據(jù)返回object和字符串影響原因是什么
查詢數(shù)據(jù)返回object和字符串,導(dǎo)致這兩種情況的原因是什么呢?在本文將為大家詳細(xì)介紹下,具體祥看代碼2013-08-08
jquery中cookie用法實例詳解(獲取,存儲,刪除等)
這篇文章主要介紹了jquery中cookie用法,結(jié)合實例詳細(xì)分析了jQuery操作cookie的獲取,存儲,刪除等操作,并附帶了Jquery操作Cookie記錄用戶查詢過信息實現(xiàn)方法,需要的朋友可以參考下2016-01-01
用jQuery.ajaxSetup實現(xiàn)對請求和響應(yīng)數(shù)據(jù)的過濾
本文主要對用jQuery.ajaxSetup實現(xiàn)對請求和響應(yīng)數(shù)據(jù)的過濾的過程與方法進(jìn)行詳細(xì)全面的實例講解。具有很好的參考價值,需要的朋友一起來看下吧2016-12-12
3種不同的ContextMenu右鍵菜單實現(xiàn)代碼
本文給大家分享3種不同的ContextMenu右鍵菜單實現(xiàn)代碼的相關(guān)資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2016-11-11
基于jquery的兼容各種瀏覽器的iframe自適應(yīng)高度的腳本
在網(wǎng)上找了很多的iframe自適應(yīng)高度的腳本,對瀏覽的的兼容性都不好。所以就想利用jquery強(qiáng)大的兼容性,寫一個iframe自適應(yīng)高度的腳本。2010-08-08
jQuery中Datatables增加跳轉(zhuǎn)到指定頁功能
本文給大家分享jquery中datatable增加跳轉(zhuǎn)到指定頁面功能以及jquery datatable中加入雙擊跳轉(zhuǎn)功能的實例代碼,需要的朋友參考下2017-02-02
jquery 圖片Silhouette Fadeins漸顯效果
經(jīng)常漂流在css-tricks看到這篇文章,就順便搬了過來,下面譯文都是用css-tricks口吻來描述的。2010-02-02

