Jquery 动态加载的链接不';t单击时触发颜色框,但第二次单击时

Jquery 动态加载的链接不';t单击时触发颜色框,但第二次单击时,jquery,colorbox,Jquery,Colorbox,我有一个我似乎无法解决的问题: 我使用jQuery将内容动态加载到TinyScrollbar。内容中包含的链接应该会激发ColorBox。 对于要工作的链接,我使用jQUery的delegate。但是,在加载内容后,只有单击链接两次,我的颜色框才会打开 (我想,这是为了让jQuery意识到有一个匹配的元素,第二次执行委托函数。) 这是我的密码: $(document).ready(function() { var main = $('#main'); main.tinyscrol

我有一个我似乎无法解决的问题:

我使用jQuery将内容动态加载到TinyScrollbar。内容中包含的链接应该会激发ColorBox。 对于要工作的链接,我使用jQUery的
delegate
。但是,在加载内容后,只有单击链接两次,我的颜色框才会打开

(我想,这是为了让jQuery意识到有一个匹配的元素,第二次执行委托函数。)

这是我的密码:

$(document).ready(function() {
    var main = $('#main');
    main.tinyscrollbar();

    $(function(){
        $(window).bind( 'hashchange', function(e){
            var hash = location.hash;

            if (hash != '' && hash != ' ' && hash != 'undefined') {
                var urlToLoad = hash;
                $('.overview').load(urlToLoad, function(response, status, xhr) {
                  urlToLoad = "";
                  main.tinyscrollbar_update();
                });
            }
         });
        $(window).trigger( 'hashchange' );
     });

    $(document).delegate("a.video", "click", function(e){$(this).colorbox({iframe:true, innerWidth:700, innerHeight:394, fastIframe:false, transition:"none"});return false; });
    $(document).delegate("a.img", "click", function(e){$(this).colorbox({transition:"none"});return false;});
});

您需要从docReady函数中删除docReady函数。在jQuery中,这是:

$(function() {
    //your docReady code
});
这是一种简写形式:

$(document).ready(function() {
    //your docReady code
});
当您嵌入了docReady代码时,嵌入的docReady代码将在当前docReady代码完成后排队并执行。注意:

$(document).ready(function() {
        $(function() {
            alert("FIRST in code, but executed SECOND");
        });

        alert("SECOND in code, but executed FIRST");
});

老实说,我不确定这是否会解决您的问题,但在任何情况下都可能导致奇怪的问题。

这是有意义的,因为您仅在第一次单击时绑定colorbox单击事件和设置数据。直到再次单击才触发单击事件并打开颜色框。由于您已经在使用自己的单击事件,我的建议是不要将colorbox绑定到任何东西,只需在需要时直接调用它即可。例如:

$(document).delegate("a.img", "click", function(e){
    $.colorbox({transition:"none", href:this.href});
    return false;
});

这样可以将图像分组到“库”中。不确定重新绑定每次单击的含义

$(document).delegate("a.img", "click", function(e){
    $("a.img").colorbox({rel: 'group1', open: true});
    return false;
});

谢谢你告诉我,我不知道!:)不幸的是,这似乎破坏了图像分组。我无法使用这种方法左/右翻页。