2010-12-16 85 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