2009-10-29 14 views
0

這是我的問題。Javascript Ajax JQuery

我有一個javascript函數,當我點擊正確的鏈接時更新div。它正在工作。

因爲我有cliked鏈接我的div內容更新與另一個Javascript。這一次關閉它。

它相當簡單,但我不能得到它的工作,我不知道爲什麼!

下面是在頁面時,它加載首次代碼

的DIV ID config_window

<div id="config_window" class="config_window"> 
<div id="conception" class="conception">Conception et design graphique <a href ="http://url">Zéro Gravité.</a> 
</div> 
<div id="admin_btn"class="admin_btn"><a href ="#">administration.</a></div> 
<div id="test">test</div> 
</div> 

現在JavaScript時該div

<script language="javascript" type="text/javascript"> 

$("#admin_btn").click(
     function(){ 

    $('#config_window').addClass('config_open'); 
     config_set('config_window','open','var') 
    } 

    ); 

</script> 
內呼籲更新

到目前爲止,它的工作我的div正在更新,我看到了新的內容。新的內容是

<div id="conception" class="conception">Conception et design graphique <a href ="http://zedproduction.com">Zéro Gravité.</a> 
</div> 
<div id="admin_btn_x" class="admin_btn"><a href ="#">Terminer.</a></div> 

<script language="javascript" type="text/javascript"> 
    $("#admin_btn_x").click(
     function(){ 
    $('#config_window').removeClass('config_open'); 
     config_set('config_window','close','var') 
    } 
    ); 
</script> 

我期待着同樣的功能工作,但它不是!從第一個問題開始我就不明白爲什麼。

難道這是因爲我的第二個腳本是在獲取更新的div?

謝謝!

+0

我得到這個工作的唯一方法是如果我點擊的按鈕不在config_window div。 sy我打開和關閉按鈕是在一個單獨的div,我看到他們兩個。我希望關閉按鈕在我更新的div中。 – MadeInDreams 2009-10-29 01:19:27

回答

0

我懷疑這是因爲第二個處理程序應該應用於的元素在DIV更新之後才存在,並且應用處理程序的函數在DIV更新之前執行 - 因此該處理程序未應用。您可能想嘗試使用活動處理程序進行點擊事件,以便無論何時添加元素,它都將應用於與選擇器匹配的所有元素。您可以在頁面加載時添加這兩個處理程序,它們將應用於具有這些ID的元素,無論它們是否動態添加。

<script type="text/javascript"> 
    $("#admin_btn").live('click', function(){ 
     $('#config_window').addClass('config_open'); 
     config_set('config_window','open','var') 
    }); 

    ); 
    $('#admin_btn_x').live('click', function() { 
     $('#config_window').removeClass('config_open'); 
     config_set('config_window','close','var') 
    }); 
</script> 
+0

非常感謝你,先生! 8P – MadeInDreams 2009-10-29 01:42:02

0

是否有你添加將功能分成兩個腳本的原因?我會改變你的腳本是這樣的:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#config_window').hide(); // just in case 
      $('#admin_btn').bind("click", function() { 
       if($('#config_window').is(':hidden')){ 
        $('#config_window').show(); 
         config_set('config_window','open','var') 
       } else { 
        $('#config_window').hide(); 
         config_set('config_window','close','var') 
       }    
      }); 
     }); 
    </script>