Colorbox没有出现在通过ajax调用的链接上

时间:2010-12-10 12:32:48

标签: ajax colorbox

我正在尝试在页面上使用colorbox,其中我有三个链接,每个链接都有onclick事件,调用ajax页面,响应文本显示在必要的div中。一切都工作正常,除了彩盒链接。在通过ajax调用内容后,链接无法显示为彩色框。这是我调用colorbox的代码,当页面加载工作时。

<p>
$(document).ready(   
    function()  
    {  
       $(".editchecklist").colorbox({width:"50%", height:"35%", iframe:true, onClosed:function(){ location.reload(true); } });          
    }  
);

我试图寻找这个问题,但一切都与jQuery ajax调用有关,而不是简单的ajax调用。建议使用.live()或重新绑定方法,我不知道如何以及在何处使用它们。 这是我的ajax调用代码:

function getxmlhttp()    
{
    var xmlHttp = false;  
    if (window.XMLHttpRequest)  
    {  
        // If IE7, Mozilla, Safari, etc: Use native object  
        var xmlHttp = new XMLHttpRequest();  
    }else  
    {  
        if (window.ActiveXObject)  
        {  
            // ...otherwise, use the ActiveX control for IE5.x and IE6  
            var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
        }  
    }  
    return xmlHttp;  
}

function process_ajax2(phpPage, objID, getOrPost,clickedLink)  
{      
    xmlhttp = getxmlhttp();  
    var obj = document.getElementById(objID);  
    if(getOrPost == "get")  
    {          
        xmlhttp.open("GET",phpPage);  
        xmlhttp.onreadystatechange = function()  
        {          
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200)  
            {  
                document.getElementById('change_'+clickedLink).innerHTML = xmlhttp.responseText;  
            }  
        }  
        xmlhttp.send(null);  
    }  
}  

请告诉我如何解决这个问题?

感谢你。

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,您在页面加载后通过ajax将内容加载到页面中。

你所获得的javascript只适用于页面加载时的数据,所以你需要做的是使用.live(),它将对页面加载和之后加载的元素起作用。

(注意:我不知道你试图在这里调用什么页面 - 所以我假设它在链接href中)

这样的事情应该有效

$(function(){
    $(".editchecklist").live('click',function(e){
         e.preventDefault();
         $.colorbox({
              width:"50%", 
              href:$(this).attr('href'),
              height:"35%", 
              iframe:true, 
              onClosed:function(){     
                   location.reload(true); 
              } 
         });
    });
});

更多关于jquery live http://api.jquery.com/live/