2010-12-10 4 views
0

私は3つのリンクを持つページに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); 
    } 
} 

私はこの問題を解決する方法を教えてください?

ありがとうございます。

答えて

2

あなたの質問が正しく理解できれば、pageloadの後に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ライブでhttp://api.jquery.com/live/

関連する問題