【发布时间】:2014-12-07 03:41:34
【问题描述】:
我有以下代码:
<script type="text/javascript">
$(document).on("click", "#leftconversation", function(){
var self = this;
var cid = $(this).attr('class'); // getting the user id here
var request = $.ajax({
url: "conversation.php",
type: "POST",
data: { cid: cid },
beforeSend: function(){
self.html("Loading please wait...");
}
});
//WHEN SUCCESS
request.success(function( data ) {
$("#right").html(data); // replace the right div with echoed content from php file
});
});
</script>
但是,我的控制台一直给我错误:“SyntaxError: Function statements must have a name。” 我似乎无法解决这个问题,这就是 AJAX 代码没有运行的原因。这个错误来自哪里?
按照 Todd 所说,我将代码更改为:
<script type="text/javascript">
$(document).on("click", "#leftconversation", function(){
var self = this;
var cid = $(this).attr('class'); //you are getting the user id here
var request = $.ajax({
url: "conversation.php",
type: "POST",
data: { cid: cid },
beforeSend: function(){
self.html("Loading please wait...");
},
success: function(data) {
$("#right").html(data);
},
error: function(request, err){ console.log('An Error Occured' + err); }
});
});
</script>
它修复了第一个错误,但现在它告诉我 TypeError: undefined is not a function (evalating 'self.html("Loading please wait...")')
这是固定的,应该使用 var self = $(this);而是
【问题讨论】:
-
您在实际代码中是否缺少
(document).on()之前的JQuery 别名(即$)? -
啊哈,我加进去了,还是一样的错误
-
问题,
self是在某处定义的...我设置为var self = this;...看不到它。问题可能是 self.html ... -
self声明在哪里? -
嗨,我试过 var self=this,但它仍然返回相同的错误
标签: javascript jquery ajax