我在这里有这个功能:
$("a.fancybox_vid").each(function(){
$(this).fancybox({
titleShow : false,
width: 640,
height: 395,
autoDimensions: false,
overlayOpacity: 0.6,
href: "misc/mc.php?v="+$(this).attr('id')
});
});
现在附加了一个包含c lass .fancybox_vid的链接,然后这将无效。只有从一开始就存在。我怎么能在每个()中都有live()。
答案 0 :(得分:4)
如果您想要方法的“类似实时”功能,可以使用the livequery
plugin:
$(function() {
$('a.fancybox').livequery(function() {
$(this).fancybox({
titleShow : false,
width: 640,
height: 395,
autoDimensions: false,
overlayOpacity: 0.6,
href: "misc/mc.php?v="+$(this).attr('id')
});
});
});
...虽然在新创建的元素上调用fancybox
插件会更好(更少开销)。
答案 1 :(得分:0)
这是不可能的,因为live
处理事件。仅限Fancybox 在当前元素队列上创建事件。
我认为每次创建新元素时都必须应用.fancybox()
方法。
答案 2 :(得分:0)
做一个叫做fancybox的直播活动怎么样:
$("a.fancybox_vid:not(.fancy)").live('click', function(){
$(this).addClass('fancy').fancybox({
titleShow : false,
width: 640,
height: 395,
autoDimensions: false,
overlayOpacity: 0.6,
href: "misc/mc.php?v="+$(this).attr('id')
});
});