您的位置:首頁技術文章
文章詳情頁

javascript - 通過ajax,在ul加載了全部數據,添加了ul li 單擊事件,可是觸發不了。

瀏覽:185日期:2024-03-31 09:09:30

問題描述

通過ajax,在ul加載了全部數據,添加了ul li 單擊事件,可是觸發不了,如果是ul事件的話能觸發。

ajax

/*省市*/$('#proNum').click(function(){$.ajax({type:'post', url:'region/jsonRegion', dataType:'json', success:function(data){ $('#gj_disProvince').toggleClass('active');var listr ='';for(var i = 0; i < data.length; i++){ listr +='<li class=’com-li gj_dispro’ proNum=’'+data[i].id+'’>'+data[i].placename+'</li>';}$('#assessPro').html(listr); //添加全部城市 }}); });

實現圖javascript - 通過ajax,在ul加載了全部數據,添加了ul li 單擊事件,可是觸發不了。

標簽

<p id='gj_disProvince'> <input readonly='readonly'placeholder='省份' proNum='0'> <p class='p-r'><p class='down-box'> <ul id='assessPro'> </ul></p> </p></p>

事件

/*選擇一個省 ,li[class=’com-li gj_dispro’] 觸發不了*/ $('ul[class=’com-ul com-ul-288’]').click(function(){ alert(1); // 不明白為什么 ul 能觸發,li就不行,//請教一下如何獲取到選擇中li的省市和id });

問題解答

回答1:

$(’selector’).on(’click’,’childSelector’,function(){})使用 on() 方法添加的事件處理程序適用于當前及未來的元素回答2:

因為ajax事件是異步執行的,你點擊的時候,并沒有li這個don結構

回答3:

循環時把id存在li的attr里<li c_id='' >點擊事件 獲取var cid = $this.attr(’c_id’);

回答4:

使用$parentNode.on(’click’,childNode,callback)來綁定事件 原理就是事件冒泡機制

回答5:

注意三點:1.事件注冊函數應該在Ajax調用成功后再注冊,可以在ajax的回調函數中調用事件注冊函數,2.確保你的注冊事件的函數未寫錯,你這兒事件函數寫錯了,直接給click賦值,然后是你的class選擇器,沒發現有元素的class值是你選擇器中的值,如果沒有當然選不到。3.確保在你點擊事件之前,確保事件已經注冊完成。

標簽: JavaScript
国产综合久久一区二区三区