2012-01-22 20 views
0

jqueryui用於顯示一個對話框,然後如果在對話框中點擊'dialog_insider',而不是在平面上(正確的措辭?)網頁,將會發出ajax調用。在通過AJAX稱爲 HTML文件:jquery,從網頁中的ajax調用改變jqueryui對話框的內容

<div id="dialog" style="border:1px solid green; width:150px; margin:auto;"> 
    <div class="dialog_insider">this is the dialog</div> 
    <!-- end of class dialog_insider-->  
</div> 
<!- end of id dialog--> 

的jQuery:

<script type="text/javascript">  
    $(document).ready(function(){ 
     $("#dialog").click(function(){ 

      my_dialog = $(this).clone(); 
      my_dialog.dialog(); 
      $(".dialog_insider", my_dialog).click(function(){ 
       alert("clicked"); 
       $.post("replace.php",function(response){ 
       }); 
      }); 
     }); 
    }); 
</script> 

文件replace.php包含:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     alert("hi"); 
     $("dialog_insider",my_dialog).html('4444444'); 
    }); 
</script> 

我沒有得到任何的功能(即沒有警報,沒有html更改)從replace.php頁

我試過$("opener.dialog_insider",my_dialog).html('4444444');,但沒有結果。

解決方案是什麼?

回答

0

爲了讓ajax所謂的頁面運行javascript,您需要將它應用到當前文檔。

opener在您進行AXAJ呼叫時不起作用,僅適用於打開的窗口。

$.post("replace.php", {}, function(response){ 
    $('body').append(response); 
}); 

當你附加JS或執行eval()時,JS會執行;

+0

'您需要將其應用到當前文檔' - 是否僅用於對話框?否則,我認爲這不是強制性的寫一些東西作爲回調函數的主體 –

+0

Chrome控制檯說:未捕獲的ReferenceError:未定義正文 –

+0

'$('body')',選擇器爲''元素。 ('$(body)=> $('body')') – devdRew

相關問題