将 jQuery colorbox 插件添加到动态创建的元素

发布于 2024-08-25 02:17:43 字数 287 浏览 4 评论 0原文

在链接上分配颜色框功能的常用方法如下:

$("a.colorbox").colorbox({ transition: "elastic" });

不过,新添加的项目不会以这种方式绑定。

如何将颜色框添加到动态创建的

<a class="colorbox"></a>
elements too?

The usual way to assign color box functionality on a link is like this:

$("a.colorbox").colorbox({ transition: "elastic" });

Newly added items are not bound in this way though.

How can I add colorbox to dynamically created

<a class="colorbox"></a>

elements too?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

长伴 2024-09-01 02:17:43

此处介绍的方法 是实时绑定到您感兴趣的元素上的 click 事件(例如本例中的 .colorbox)并调用 colorbox 库函数在处理程序中:

$('.colorbox').live('click', function() {
  $.colorbox({href:$(this).attr('href'), open:true});
  return false;
});

The method described here is to live-bind to the click event on the elements you're interested in (such as .colorbox in this instance) and call the colorbox library function in the handler:

$('.colorbox').live('click', function() {
  $.colorbox({href:$(this).attr('href'), open:true});
  return false;
});
那支青花 2024-09-01 02:17:43

您也可以尝试这个:

$('.colorbox').live('click',function(e){
    e.preventDefault();
    $(this).colorbox({open:true});
});

我认为它比使用 fn 命令更干净。

You could also try this:

$('.colorbox').live('click',function(e){
    e.preventDefault();
    $(this).colorbox({open:true});
});

I think it's a little cleaner then using the fn command.

北风几吹夏 2024-09-01 02:17:43

由于 live 已被折旧,您应该使用 on

$('body').on('click', '.colorbox', function() {
    $('.colorbox').colorbox({rel: $(this).attr('rel')});
});

此代码还允许分组。

As live is depreciated, you should use on

$('body').on('click', '.colorbox', function() {
    $('.colorbox').colorbox({rel: $(this).attr('rel')});
});

This code also allows grouping.

谎言 2024-09-01 02:17:43

这篇文章很旧,但这可能对其他人有帮助:
simonthetwit 解决方案没问题,但您需要单击触发链接两次。 Colorbox 可以直接调用,所以这应该可以工作:

$( '.colorbox' ).live('click',function(e){
        e.preventDefault();
        $.colorbox({open:true});
        //inline example
        //$.colorbox({inline:true, width:"50%", href:"#inline_content"});
});

干杯!

This post is old but this may help others:
simonthetwit solution is ok, but you'll need to click the trigger link twice. Colorbox can be called directly, so this should work:

$( '.colorbox' ).live('click',function(e){
        e.preventDefault();
        $.colorbox({open:true});
        //inline example
        //$.colorbox({inline:true, width:"50%", href:"#inline_content"});
});

Cheers!

回忆追雨的时光 2024-09-01 02:17:43

这是我发现的解决方案,可以避免单击两次链接来触发事件:

$(document.body).delegate('.<my-class>', 'click', function(e) {  
    e.preventDefault();  
    $('.<my-class>').colorbox({<my-code>})  
});

Here was the solution I found to avoid the needing of clicking twice the link to fire the event:

$(document.body).delegate('.<my-class>', 'click', function(e) {  
    e.preventDefault();  
    $('.<my-class>').colorbox({<my-code>})  
});
暮年 2024-09-01 02:17:43

我遇到了与@sunburst 相同的问题,必须单击触发链接两次。使用相同的代码,但 .delegate() 而不是 .live()。解决了所有问题并很好地清理了我的 jQuery!

这里有很好的解释: http://www. alfajango.com/blog/the-difference- Between-jquerys-bind-live-and-delegate/

I was having the same problem as @sunburst with having to click the trigger link twice. Used the same code, but .delegate() instead of .live(). Solved everything and cleaned up my jQuery nicely!

Nice explanation here: http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文