2010-12-16 47 views
2

我試圖在live()函數中使用AJAX,但它不起作用。有什麼建議麼? AJAX調用工作(見例1),點擊是registred(見alertbox 1,例2),但調用它時,內部的生活() - 點擊,AJAX調用不返回任何數據沒有AJAX調用live() - 綁定點擊

//Ajax function which gets called 
function ajaxFunc(){ 
    $.get("test.php", function(data){ 
    alert(data); //Says "hello nerd!" from PHP script 
    }); 
} 

//Example 1. Works fine. 
$('#button').click(function(){ 
    ajaxFunc(); //Alerts "hello nerd!" 
}); 

//Example 2. Does not work 
$('.category_item').live('click', function(){  
    alert("Testing. Yes, click works)";  //Alertbox 1, 
    ajaxFunc(); //Alerts a empty alertbox  Alertbox 2 
}); 
+0

,您使用的例子是在同一目錄下的頁面? – RageZ 2010-12-16 07:56:15

+0

這個警報是否被觸發警報(「Testing。Yes,click works)」; – kobe 2010-12-16 07:57:49

+0

+1「hello nerd!」。另外,有趣的問題。 – 2010-12-16 08:01:27

回答

1

如您所說,如果您看到「測試。是,點擊作品」提醒,那麼沒有理由說引用的代碼不起作用。請注意,您的引用代碼在那裏存在語法錯誤,您將")顛倒過來;我認爲這是發佈這個問題的神器,因爲你說做過的工作。

如果解決這個問題,它工作正常:http://jsbin.com/uvuyi4

這是有道理的; ajaxFunc中沒有任何內容依賴於被調用的上下文中的任何內容,所以它從何處調用並不重要。

+0

我會再次檢查我的代碼,thanx :) – lars 2010-12-16 08:14:14

3

你有一個語法錯誤:

alert("Testing. Yes, click works)"; 

應該是:

alert("Testing. Yes, click works"); 
您使用的是相對URI您的Ajax調用
+0

不錯的捕獲///提醒本身拋出錯誤 – kobe 2010-12-16 08:10:42

+0

Thanx重播,但它不影響我的問題 – lars 2010-12-16 08:12:26

+0

@lars:好的,如果代碼是一個直接引用,它會 - 對'ajaxFunc'的調用不會發生,因爲解釋器會在糟糕的'alert'行中保留。但是,我猜你在這個問題出現之前並沒有那麼警覺,並且在發佈你的問題時引入了語法錯誤...... – 2010-12-16 08:54:56