类没有在jQuery prepend上工作

时间:2012-05-29 11:41:23

标签: jquery

我在我的jQuery代码中添加了一个列表项<li>到我的<ul>,在前面的<li>我有一个调用fancybox的文本链接。

任何附加了“fb”类的点击项目都会调用并打开fancybox,只有新添加的带有文本链接的列表项才会打开花哨的框。

所以这就是我在前言

中的内容
<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
});

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

提前致谢

2 个答案:

答案 0 :(得分: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
});

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

答案 1 :(得分:0)

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

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

确实,您动态添加了最近的项目,而之前的 $(“。fb”)选择器未包含新创建的列表项。