将jQuery colorbox插件添加到动态创建的元素中
在链接上分配颜色框function的常用方法如下:
$("a.colorbox").colorbox({ transition: "elastic" });
但是,新添加的项目不受此限制。
如何将colorbox添加到动态创建中
元素呢?
这里描述的方法是实时绑定到您感兴趣的元素上的click
事件(例如本例中的.colorbox)并在处理程序中调用colorbox库函数:
$('.colorbox').live('click', function() { $.colorbox({href:$(this).attr('href'), open:true}); return false; });
你也可以试试这个:
$('.colorbox').live('click',function(e){ e.preventDefault(); $(this).colorbox({open:true}); });
我认为它比使用fn
命令更清洁一点。
由于实时折旧,您应该使用
$('body').on('click', '.colorbox', function() { $('.colorbox').colorbox({rel: $(this).attr('rel')}); });
此代码还允许分组。
这篇文章很老但这可能有助于其他人:simonthetwit解决方案没问题,但你需要点击触发链接两次。 Colorbox可以直接调用,所以这应该工作:
$( '.colorbox' ).live('click',function(e){ e.preventDefault(); $.colorbox({open:true}); //inline example //$.colorbox({inline:true, width:"50%", href:"#inline_content"}); });
干杯!
这是我发现的解决方案,以避免需要点击两次链接来触发事件:
$(document.body).delegate('.', 'click', function(e) { e.preventDefault(); $('. ').colorbox({}) });
我遇到了与@sunburst相同的问题,因为必须单击两次触发链接。 使用相同的代码,但.delegate()
而不是.live()
。 解决了所有问题并很好地清理了我的jQuery!
这里的解释很好: http : //www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/