Jquery preventDefault第一次工作,但第二次不工作
我想通过ajax加载下一篇文章。第一次运行良好,但第二次站点加载全新的。违约似乎不起作用 我见过类似的问题,我已经使用了建议的解决方案,但它对我不起作用。(.on或.live方法) 这是我的密码:Jquery preventDefault第一次工作,但第二次不工作,jquery,Jquery,我想通过ajax加载下一篇文章。第一次运行良好,但第二次站点加载全新的。违约似乎不起作用 我见过类似的问题,我已经使用了建议的解决方案,但它对我不起作用。(.on或.live方法) 这是我的密码: // Ajax load more posts var loadMorePosts = function(e){ e.preventDefault(); var $container = $("#primary");
// Ajax load more posts
var loadMorePosts = function(e){
e.preventDefault();
var $container = $("#primary");
var $loadMoreButton = $("#nav-ajax .nav-more");
var $nextPageLink = $loadMoreButton.find("a").attr("href");
// do the ajax magic
$.post($nextPageLink, function(data){
var $mainWrap = $("#main-wrap", data);
var $content = $mainWrap.find("#primary article");
// add the loaded posts
$container.append($content);
// grab the next PageLink
var $nextLoadMoreButton = $mainWrap.find("#nav-ajax .nav-more");
$loadMoreButton.replaceWith($nextLoadMoreButton);
}, "html");
} // end loadMorePosts
// Bind Functions
$("#nav-ajax .nav-more").on("click", loadMorePosts);
我做错了什么
提前谢谢你的帮助!
Tommy每次单击时,您都会将“加载更多按钮”替换为一个新按钮,根据这一行推断:
$loadMoreButton.replaceWith($nextLoadMoreButton);
这会导致单击事件绑定丢失,因为新替换的按钮不会继承绑定到其旧对应项的单击事件。您应该使用.on()
,并监听出现在文档
对象上的单击事件:
$(document).on("click", "#nav-ajax .nav-more", loadMorePosts);
$loadMoreButton.replaceWith($nextLoadMoreButton)代码>您的新按钮可能没有您认为它有的事件。请对on()
使用委派方法。。见文件。或者在更改html时再次绑定事件处理程序