JQuery給動態生成的DOM元素綁定點擊事件

最近做項目的時候,使用ajax調用後臺數據來動態生成頁面內容。然後在給那些內容綁定一個點擊事件的時候,發現點擊竟然無效了。原因是:ajax有個請求時間,無論是同步還是異步,JQuery進行的綁定都會在頁面加載完後立刻進行,而不是等待ajax請求完。也就是說,綁定的元素綁空了。那這個問題怎麼解決呢。方法如下:

在動態生成的時候綁定一個函數,並把對象傳進去,如:

strhtml = strhtml + "<td>" + "<button class='btn btn-primary' οnclick='editPosition($(this));' data-toggle='modal' data-target='#PlaceModal'>"
    + "<i class='fa fa-edit'></i>編輯" + "</button>" + "</td>";

然後,js裏聲明那個函數,並接收this對象,如:

function editPosition(obj){
    $("#Posi-actionFlag").val("update");
    $("#Posi-id").val(obj.parent().parent().children("td").eq(0).html());
    $("#Posi-frequence").val(obj.parent().parent().children("td").eq(2).html());
    $("#Posi-frequence2").val("0");
    $("#Posi-name").val(obj.parent().parent().children("td").eq(1).html());
    var del = obj.parent().parent().children("td").eq(3).html();
    if(del == "0"){
        $("#Posi-isdelete").bootstrapSwitch("state", true);
    }else{
        $("#Posi-isdelete").bootstrapSwitch("state", false);
    }
}

這樣就可以啦,問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章