2013-05-18 53 views
0

我在我的網站上使用ajax進行導航,但我在頁面中遇到腳本標記問題。 (我的應用程序是一個Rails應用程序,但我不認爲這有差別)javascript腳本標記和ajax問題

例如,我有我的網頁上的按鈕:

<button id="alert">click here</button> 

,並在底部:

<script> 
    $("#alert").click(function() { 
     alert("hi there")} 
    ); 
</script> 

我第一次去的頁面,按鈕工作正常。然後,我點擊Ajax站點上的幾個鏈接,返回到使用Ajax調用的頁面,並且它不再工作。我之前聽說過'Ajax去掉標籤'或其他東西,但還沒有提出解決方案。

eval()會工作嗎?聽說它可能會這樣做。我將如何實施?我一直在這個工作好幾天,似乎很奇怪,沒有簡單的解決方法。

+0

你能解釋一下爲什麼你根本無法使用事件代表團。 – Ohgodwhy

+0

是否每次調用ajax頁面時都會再次生成腳本標記及其內容? –

+0

當你點擊你的ajax站點時,你是否重寫了html?替換內容?切換到.on將監聽器綁定到窗口,所以即使#alert元素被添加回來,它也會註冊。 –

回答

4

代表您的活動

$(document).on('click', "#alert",function() 
     {alert("hi there")} 
}); 

理想是更好,如果你不綁定事件到文檔中。嘗試將事件綁定到最接近可能的靜態元素。

+0

不知道這是一個解決方案。因爲你的代碼工作必須在腳本標籤之間,所以我仍然有同樣的問題。 – CHarris

+0

你的意思是把代碼放在一個單獨的.js文件中?這對我不起作用,因爲我也有動態變量,並且它們不會從.js文件重新加載ajax。 – CHarris