2012-03-06 162 views
0

林有我的jQuery的麻煩。即時通訊使用ajax登錄到我的帳戶,該inturn運行一些PHP基於設定的會話更改幾個菜單。然而,因爲頁面不會重定向,但內容更改似乎打破了頁面上的所有jQuery,直到我點擊「刷新」,並且所有jquery再次正常工作。爲什麼我的jquery只能在頁面刷新後進入?

我該如何解決這個問題?

我添加了與最新問題的代碼部分到這個js fiddle

+1

使用新的'$(「選擇」)。在( 'click',function(){' – 2012-03-06 19:27:45

回答

0

這個問題的答案最終是因爲我還沒有包括手風琴jQuery腳本到,目前以拉外部包括PHP文件。

0

確保您使用jQuery的live功能:

$(document).ready(function() { 

    // Do your AJAX here 
    $.ajax({ 
     // blah blah 
    }); 

    // Do the rest of your functionality here: 
    $('a.class_name').on('click',function() { 
     // Change stuff when you click this link 
    }); 

}); 
+2

.live()已被棄用,你想要.delegate()或.on()取決於你的jQuery版本 – 2012-03-06 19:36:44

+0

@SurrealDreams好點,謝謝 – hohner 2012-03-06 19:45:45

+0

@jamie,mate im不是太過分jquery有沒有機會出現js小提琴? – Farreal 2012-03-06 20:00:46

0

按照上述傑米的回答。在使用諸如click之類的事件處理程序時,您只在初始頁面加載時註冊事件處理程序。任何後續加載的頁面元素都不會被註冊。

你需要的是使用委託或活來註冊你的事件處理程序。這樣你就不直接向元素註冊事件,而是向上註冊一個元素,事件將被委託給你的特定元素。在你的情況下,它將被委託給你的元素。

看看this

相關問題