2013-07-06 71 views
0

在我的網頁,我使用的代碼塊生成HTML用於動態生成HTML元素的jQuery選擇器?

$.ajax({ 
     url: '...' 
}).done(function (model) { 
    for (var i = 1; i <= model.numberOfPages; i++) { 
     html += '<a class="page_number" href="javascript:void(0);">'+i+'</a>&nbsp;'; 
    } 
    $(".page_numbers").html(html); 
}); 

但是,當我嘗試在這些添加click事件的標籤,沒有發生。我哪裏做錯了?

$(document).ready(function (event) { 
    $('.page_number').click(function (event) { 
     //Some code here 
    }); 
}); 
+0

'$( '身體')上( '點擊', '.page_number',函數(事件){...});' – Pointy

+0

是項目之前的代碼運行。生成?那麼你不能使用基本的'click',你需要使用'on'。 – Hogan

+0

@Hogan是的,在()上使用後,它的工作原理是 –

回答

1

在將元素添加到頁面後,必須綁定事件。

或者你可以使用委託來代替,然後將其綁定到父元素,並指定其適用的子元素:

$('.page_numbers').on("click", ".page_number", function (event) { 
    //some code here 
}); 

的jQuery 1.4.2到1.6.x的使用delegate method代替在on method的:

$('.page_numbers').delegate(".page_number", "click", function (event) { 
    //some code here 
}); 
+0

,它非常完美,非常感謝你! –

0

在jQuery 1.7,這是爲你綁定事件的方式來動態創建的對象

$(document).ready(function (event) 
{ 
    $(document).on("click", ".page_number", function(e) 
    { 
     //some code here 
    }); 
}); 

API文檔:http://api.jquery.com/on/