Javascript 无限滚动和破坏我的另一个JS
我正在使用:并且遇到了一个我无法解决的问题 无限卷轴运行良好,以下是我的初始化:Javascript 无限滚动和破坏我的另一个JS,javascript,infinite-scroll,Javascript,Infinite Scroll,我正在使用:并且遇到了一个我无法解决的问题 无限卷轴运行良好,以下是我的初始化: var $container = $('.parent').infiniteScroll({ path: '.nav-prev a', append: '.article', status: '.scroller-status', hideNav: '.navigation-index', }); 加载第一页后,它会打断我的另一个JS。我在“文章”上有一个点击功能 卷轴启动后,此功能
var $container = $('.parent').infiniteScroll({
path: '.nav-prev a',
append: '.article',
status: '.scroller-status',
hideNav: '.navigation-index',
});
加载第一页后,它会打断我的另一个JS。我在“文章”上有一个点击功能
卷轴启动后,此功能停止工作
我尝试过各种方法,例如:
var $container = $('.parent').infiniteScroll({
$(".article").click(function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
});
但我就是不能用我的JS。我知道我遗漏了什么?这实际上是一个非常常见的问题。问题是在添加事件处理程序时,jquery事件处理程序被添加到DOM中的对象。这意味着在添加新对象后,新对象不会获得事件处理程序 幸运的是,有一个简单的解决方案,使用委托事件处理程序按如下方式修改事件处理程序:
$(document).on("click",".article",function(){
或者我认为将其添加到.parent
可能比将其添加到文档
更好
$(".parent").on("click",".article",function(){
任何一种方法都应该有效,但文档
肯定有效
所以:
$(".parent").on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
$(document).on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
或:
$(".parent").on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
$(document).on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
这实际上是一个非常普遍的问题。问题是在添加事件处理程序时,jquery事件处理程序被添加到DOM中的对象。这意味着在添加新对象后,新对象不会获得事件处理程序 幸运的是,有一个简单的解决方案,使用委托事件处理程序按如下方式修改事件处理程序:
$(document).on("click",".article",function(){
或者我认为将其添加到.parent
可能比将其添加到文档
更好
$(".parent").on("click",".article",function(){
任何一种方法都应该有效,但文档
肯定有效
所以:
$(".parent").on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
$(document).on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
或:
$(".parent").on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
$(document).on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
对于其他有类似问题的人,我的最后一个片段是:
$(".parent").on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
对于其他有类似问题的人,我的最后一个片段是:
$(".parent").on("click",".article",function(){
$(".hidden").hide("fast");
$(this).next('.hidden').slideToggle("fast");
});
这是正确的答案!非常感谢您的帮助,非常感谢您抽出时间:这是正确的答案!非常感谢您的帮助,非常感谢您抽出时间:D