javascript - 透過ajax,在ul加載了全部數據,添加了ul li 單擊事件,可是觸發不了。
学习ing
学习ing 2017-06-12 09:22:31
0
5
1146

透過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); //添加全部城市            
           }
        
        });
    });

實作圖

標籤

                <p class="conselect mr-7" id="gj_disProvince">
                    <input class="inputype" readonly="readonly"placeholder="省份"
                        id="proNum" proNum="0">
                    <p class="p-r">
                        <p class="down-box">
                            <ul class="com-ul com-ul-288" 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           
    });
学习ing
学习ing

全部回覆(5)
黄舟

雷雷

代言

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

滿天的星座

循環時把id存在li的attr裡


  • 點擊事件 取得
    var cid = $this.attr('c_id');
    扔个三星炸死你

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

    过去多啦不再A梦

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

    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板