使用jquery切换无限滚动

时间:2010-12-27 18:02:05

标签: jquery toggle show-hide

我正在尝试使用切换jQuery脚本(如下所示)来显示/隐藏注释列表。该脚本运行良好,但是,在实现无限滚动功能后,脚本重复上一篇文章中的“showtext”(即,在无限滚动的下一篇文章的3次加载之后,将有3份“(show)”)

我意识到这是因为脚本中的“追加”行,但是当我发表评论并在页面上使用class =“toggleLink”建立链接时,内容不会切换。链接的文本虽然改为hideText,所以我想知道为什么内容没有出现。谢谢你的帮助!

$(document).ready(function() {

// choose text for the show/hide link - can contain HTML (e.g. an image)
var showText='show';
var hideText='hide';

// initialise the visibility check
var is_visible = false;

// append show/hide links to the element directly preceding the element with a class of "toggle"
$('.toggle').prev().append(' (<a href="#" class="toggleLink">'+showText+'</a>)');

// hide all of the elements with a class of 'toggle'
$('.toggle').hide();

// capture clicks on the toggle links
$('a.toggleLink').click(function() {

// switch visibility
is_visible = !is_visible;

// change the link depending on whether the element is shown or hidden
$(this).html( (!is_visible) ? showText : hideText);

// toggle the display - uncomment the next line for a basic "accordion" style
//$('.toggle').hide();$('a.toggleLink').html(showText);
$(this).parent().next('.toggle').toggle('slow');

// return false so any link destination is not followed
return false;

});
});

1 个答案:

答案 0 :(得分:1)

我为这个问题创造了一个解决方案。虽然它可能不是最有效的做事方式。

在append()行上方添加此行:

$('.toggleLink').remove();

这将删除所有toggleLink元素,以便在无限滚动运行并调用切换脚本时,可以重新插入showText(消除重复)。