2015-11-11 77 views
0

我正在使用下面的代碼。這是引導程序3刪除確認消息。加載動態內容後,jQuery函數不起作用

$(document).ready(function(){ 

$('a.btnDelete').on('click', function (e) { 
    e.preventDefault(); 
    var id = $(this).closest('div').data('id'); 
    $('#myModal').data('id', id).modal('show'); 
}); 

$('#btnDelteYes').click(function() { 
    var id = $('#myModal').data('id'); 
    var dataString = 'id='+ id ; 
    $('[data-id=' + id + ']').parent().remove(); 
    $('#myModal').modal('hide'); 
    //ajax 
    $.ajax({ 
type: "POST", 
url: "delete.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
//$(".fav-count").html(html); 
$("#output").html(html); 
} 
}); 
//ajax ends 
}); 
}); 

這是我使用

<div data-id="MYID"><a class="btnDelete" href="#">Delete</a></div> 

而我使用的是相同的HTML元素動態觸發刪除,它不工作的觸發因素。

有人能指點我做正確的方法嗎?

回答

3

你必須使用事件代表團

$(document).on("click" , '#btnDelteYes' ,function() { 

差不多:綁定點擊上漲到什麼時候運行腳本存在,並且被點擊的東西的時候,告訴它的單擊事件傳遞給在#btnDelteYes元素,而不是

我無法理解你在做你的代碼正是由於缺少信息,但得到的答覆是:你應該在動態插入的內容使用事件代表團

+0

太棒了。它適用於一些代碼調整。我使用了'$(document).on(「click」,'.btnDelete',function(e){'而不是'$(document).on(「click」,'#btnDelteYes',function(){'Thanks – max

+1

我的榮幸:) 請爲下一代設定接受的答案〜 – Elentriel

3

你可以試試

$('[data-id=MYID]').on('click','.btnDelteYes',function({ 
    e.preventDefault(); 
    var id = $(this).closest('div').data('id'); 
    $('#myModal').data('id', id).modal('show'); 
}); 

這裏<div data-id="MYID">應該是一個硬編碼的HTML內容和我們的想法是事件委託而不是在動態元素直接綁定處理到包裝。