有一个创建链接的函数(如果不存在)(获取新数据后的分页链接)
如果total_pages>我从控制器调用下面的函数1
function add_pagination_div() {
data = '<div id="pagination_sec"><a style="display:block;width:100%;background:#EEEEEE;text-align:center;padding:10px 0;" page-number="1" class="paginate_button" href="#">Show More...</a></div>'
$(data).appendTo('[data-role=page]').trigger('create');
}
它将其添加到视图中,但点击页面上的事件将无效。
$(".paginate_button").click(function(event){
event.preventDefault();
var pnumb = $(".paginate_button").attr('page-number');
var newValue = parseInt(pnumb) + 1;
$.ajax({
type: "GET",
url: "/app/Place/more?page=" + pnumb + "&requested_action=index&listClass=placeList",
success: function(){
$(".paginate_button").attr('page-number', newValue);
}
});
});
编辑
来自控制器
data = '<div id="pagination_sec"><a style="display:block;width:100%;background:#EEEEEE;text-align:center;padding:10px 0;" data-page-name="index" data-list_name="peopleList" page-number="1" class="paginate_button" href="#">Show More...</a></div>'
WebView.execute_js("add_pagination_div('#{data}');")
然后将脚本更改为:
function add_pagination_div(linkData) {
$(linkData).appendTo('[data-role=page]').trigger('create');
$(".paginate_button").click(function(event){
event.preventDefault();
var pnumb = $(".paginate_button").attr('page-number');
var newValue = parseInt(pnumb) + 1;
var pageName = $(".paginate_button").attr('page-name')
var listName = $(".paginate_button").attr('data-list_name')
$.ajax({
type: "GET",
url: "/app/Place/more?page=" + pnumb + "&requested_action=" + pageName + "&listClass=" + listName,
success: function(){
$(".paginate_button").attr('page-number', newValue);
}
});
});
}
答案 0 :(得分:0)
您可以使用.live()
或更好的.delegate()
将点击处理程序绑定到尚未添加到dom的元素。因此,当添加.paginate_button
链接时,点击处理程序将起作用。
ya的一些文档:
http://api.jquery.com/delegate/
这是一个jsperf,显示.delegate()
的资源密集程度低于.live()
:http://jsperf.com/jquery-live-vs-jquery-delegate/15
所以$(".paginate_button").click(function(event){
会改为:
$("[data-role=page]").delegate('.paginate_button', 'click', function(event){
OR
$(".paginate_button").live('click', function(event){
注意:最好在委托调用中使用伪页面的id,因为$('#page_id')是比$('[data-role = page]')快得多的选择器。使用id选择器使用快速的本机getElementById()函数,数据属性seelctor搜索页面上的所有元素以查看它们是否具有data-attribute。