Colorbox类不适用于ajax / dom对象

时间:2013-11-12 09:49:23

标签: javascript ajax dom colorbox

我通常在我的页面中使用colorbox工具打开“弹出窗口”,一切都很好。 在我的新项目中情况没什么不同,因为我使用js / ajax / dom在handleRequestStateChange()函数中创建dinamically我的对象。

导入js,jquery和css for colorbox后,在我的js页面的头部写道:

 $(document).ready(function () {
        $(window).scroll(function () {
        //oP1 = document.createTextNode(posizione_menu.offsetTop);
    //divIpt.appendChild(oMtx1);
    $(".divHcss").css("position", "fixed").css("top", "0px").css("z-index", "999");
        });
        //Examples of how to assign the Colorbox event to elements
            $(".group1").colorbox({rel:'group1'});
            $(".group2").colorbox({rel:'group2', transition:"fade"});
            $(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
            $(".group4").colorbox({rel:'group4', slideshow:true});
            $(".ajax").colorbox();
            $(".youtube").colorbox({iframe:true, innerWidth:640, innerHeight:390});
            $(".vimeo").colorbox({iframe:true, innerWidth:500, innerHeight:409});
            $(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
            $(".inline").colorbox({inline:true, width:"50%"});
            $(".callbacks").colorbox({
                onOpen:function(){ alert('onOpen: colorbox is about to open'); },
                onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
                onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
                onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
                onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
            });

            $('.non-retina').colorbox({rel:'group5', transition:'none'})
            $('.retina').colorbox({rel:'group5', transition:'none', retinaImage:true, retinaUrl:true});

            //Example of preserving a JavaScript event for inline calls.
            $("#click").click(function(){ 
                $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
                return false;
            });
    });

在handleRequestStateChange()之后我创建了一个元素并分配给div:

var a = createElement('a');
    //a.style.display = "block";
    a.setAttribute('class','iframe');
    a.setAttribute('href',"php/whois.php?P1="+oStxt.value);
    var divIp3 = createElement('div', 'divIp3', 'divIp3css');
    var divIp31 = createElement('div', 'divIp31', 'divIp31css');
    divIp3.appendChild(divIp31);
    divIp3.appendChild(a);
    a.appendChild(divIp31);

divIp31可以链接,但是普通浏览器标签中的href打开页面,而不使用colorbox的属性类。

有人有想法吗?

提前致谢

AM

1 个答案:

答案 0 :(得分:1)

您需要致电:

$(a).colorbox({inline:true, width:"50%"});
将锚元素追加到div后

。之前的颜色框调用仅将行为绑定到页面上已存在的元素。您需要为添加到页面的每个新元素重复此操作。

UPDATE :我没注意变量a引用DOM节点的事实。只需将它放在jquery的$中,这样就可以使用colorbox方法。