仅将侦听器应用于具有 AJAX 无限滚动的新项
apply listener to only new items with ajax infinite scroll
我正在使用 ajax 无限滚动在我的网站上加载内容,并且我为每个项目都有一个侦听器事件,该事件显示一个包含附加信息的新元素。
<div class="items">
<div class="item"><i class="fa fa-gear"></i></div>
<div class="item"><i class="fa fa-gear"></i></div>
...
</div>
<div id="pagination">
<a href="?page=2" class="next">Next</a>
</div>
var ias = jQuery.ias({
container: '.items',
item: '.item',
pagination: '#pagination',
next: '.next'
});
我正在使用它为每个新页面加载侦听器:
ias.on('rendered', function(items) {
var $items = $(items);
$items.each(function() {
$('.fa').click(function() {
show($(this).attr('id'));
});
});
});
function show(what) {
$('body').append('<div class="options"></div>');
$('.options').load('options.php?id='+id);
}
我的问题是每次加载新页面时,侦听器都会应用于每个项目,因此当加载第 2 页时,第 1 页中的项目现在将附加两个 .options 并加载两次,当第 3 页加载时,第 1 页项目加载三次,第 2 页项目加载两次,依此类推。 如何在加载每个新页面时仅将侦听器应用于新页面项目?
您可以取消绑定并重新绑定事件以仅具有一个侦听器,如下所示:
$items.each(function() {
$('.fa').unbind("click").click(function() {
show($(this).attr('id'));
});
});
相关文章:
- 结合jQuery和jetpack无限滚动
- jquery/ajax无限滚动事件
- 内容结束时停止无限滚动
- jquery无法使用无限滚动
- 无限滚动交替
- 无限滚动更改ID问题
- 如何在重建URL后从URL中传递过滤值,目的是使用Angular2和Typescript实现无限滚动
- 使用jquery或javascript延迟无限滚动
- Javascript-Nightmare.JS无限滚动操作
- Javascript-无限滚动JSON数组
- 如何正确地以无限滚动浏览网页
- 无限滚动jquery不起作用
- 我如何发送AJAX请求的内容是通过无限滚动加载的
- jQuery逻辑-无限滚动+调用javascript
- jQuery-无限滚动
- 刷新jqGrid;t在启用无限滚动的情况下保存当前页面位置
- 我如何从一个无限滚动的网站抓取图像,其中api是隐藏的,我无法通过使用Inspect Element获得它->网络
- 无限滚动在IE中返回多个结果
- jQuery 无限滚动不触发
- 如何在没有JQuery的情况下正确实现无限滚动的AngularJS表