2012-04-06 72 views
0

我有一個網頁下面的Ajax調用...功能不jQuery的AJAX HTML注入後工作

var href=$('.poplight').attr("href"); 
    $('.poplight').attr("href","#"); 
    $('.poplight').click(function(){ 
     $.get(href, function(data) { 
       $("#popup-contents").html(data) 
        // inserts <div id="additionalInfo"> 
        // <legend id="legend-params">Legend</legend> 
        // <div id="toggle"> This should toggle </div> </div> 

      } 
     ); 
    }); 

</script> 

在同一頁上,有一個.js腳本鏈接即切換每當圖例被點擊時#toggle div。這一切都在單獨的頁面上正常工作(只是圖例自身切換),但我無法讓它與ajax調用一起工作。我認爲這與jquery「附加」某些doms時有關......我對jquery的內部工作知之甚少,無法確定。

這是外部腳本。我已經嘗試了一個onload,將它與html內聯以及其他一些變體添加進去。這些函數在單擊圖例時運行(如果在.show()方法之後插入警報('test'),它將顯示一個警報窗口)。

$('#toggle').hide();            
$("#legend").toggle(
    function() { 
     $("#toggle").show("slide", {direction: "up"}, 200); 
    }, 
    function() { 
     $("#toggle").hide("slide", {direction: "up"}, 200); 
}); 

任何幫助將是偉大的!

+1

嘗試使用** ['.on()'](http://api.jquery.com/on/)**代替。這樣處理程序將被綁定到即時創建的元素上。您現在正在執行的方式只會將行爲綁定到DOM準備好的元素上。 – m90 2012-04-06 14:13:45

+0

請參閱http://stackoverflow.com/questions/3796799/jquery-not-working-in-ajax-loaded-divs – OneThreeSeven 2012-04-06 14:14:43

+0

感謝您的快速反應......會給他們一個去。 – loeschg 2012-04-06 14:15:07

回答

0

上面列出的意見幫助我解決了這個問題(我認爲他們已被SO的「算法」轉換爲註釋......將它們標記爲答案)。 我根本改變:。

$( 「#傳說」)切換(...) 到

$( 「#傳說」)在( '點擊',functionX()...) 其中functionX如果全局變量爲true或false,則隱藏了某些內容的if語句。也許不是最乾淨的解決方案,但它完成了這項工作。