2013-07-06 73 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/