Colorbox не появляется на ссылках, вызываемых через ajax - PullRequest
0 голосов
/ 10 декабря 2010

Я пытаюсь использовать colorbox на странице, где у меня есть три ссылки, каждая из которых имеет событие onclick, которое вызывает страницу ajax, и текст ответа отображается в необходимых элементах div.все работает нормально, кроме ссылок colorbox.После того, как я вызываю контент через ajax, ссылки не работают, чтобы отобразить colorbox.Вот мой код для вызова colorbox, когда страница загружена и работает.

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

Я пытался найти эту проблему, но все связано с вызовом jQuery ajax, а не простым вызовом ajax.Мы советуем использовать методы .live () или rebind, которые я понятия не имею, как и где я должен их использовать.Вот мой код вызова 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 Ответ

2 голосов
/ 19 октября 2011

если я правильно понимаю ваш вопрос, вы загрузили контент на страницу через 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/

...