1

<li>我在我的 jQuery 代码中添加了一个列表项,<ul>并且在前面添加<li>了一个名为 fancybox 的文本链接。

任何带有“fb”类的点击项都会调用并打开fancybox,只有新添加的带有文本链接的列表项不会打开fancy box。

所以这就是我在前面的内容

<a class='fb' href='viewtopic?id="+nextlistid+"'>"+title+"</a>

我尝试从链接中删除 (class='fb') ,而是给它一个唯一的 ID,我后来尝试添加$("theuniqueid").addClass("fb");它,但似乎也没有这样做。

这是fancybox代码(有效)

$(".fb").fancybox({
    'padding': 0,
    'autoScale': false,
    'transitionIn': 'none',
    'transitionOut': 'none',
    'overlayColor': '#f7f7f7',
    'overlayOpacity': 0.5
});

关于如何让课程附加到新的前置项目的任何想法?

提前致谢

4

2 回答 2

2

一旦你动态地添加了一些元素(prepend这里),你必须再次重新绑定花哨的盒子功能。像这样的东西。

$("#thatDiv").prepend("<a class='fb' href='viewtopic?id="+nextlistid+"'>"+title+"</a>");
$(".fb").fancybox({
    'padding': 0,
    'autoScale': false,
    'transitionIn': 'none',
    'transitionOut': 'none',
    'overlayColor': '#f7f7f7',
    'overlayOpacity': 0.5
});

我可能会将绑定代码移动为通用函数,以便我可以从很多地方调用它。

于 2012-05-29T11:44:23.547 回答
0

我认为您应该在最近添加的链接上再次调用您的fancybox方法。例如:

var li = $("<li></li>").addClass("fb");
$(ul).prepend(li);
li.fancybox({/*...*/});

实际上,您动态添加了最近的项目,而之前的$(".fb")选择器不包括您新创建的列表项目。

于 2012-05-29T11:46:03.283 回答