我有以下jQuery get
请求,它返回键名称下的html文本" data":
$(".article").click(function() {
$.get("<%= click_path %>", function(data) {
$(".article").html(data);
});
});
除行$(".article").html(data);
外,所有代码都执行。事实上,我在get
请求中放置的任何jquery代码都无法执行,即使它在get
请求之外移动它都可以正常工作。有没有人看到我的语法有什么问题?
答案 0 :(得分:1)
jQuery的$.get
方法是$.ajax
的别名,其假定的HTTP请求方法为GET
,并且无法指定许多选项。您可以为其提供URL和函数,以便在成功检索该URL时运行。它会尝试GET
该网址,如果,则会运行成功功能。如果它不能,或者响应数据出现问题,它会无声地失败并且不运行给定的函数。
在这种情况下,我会假设您的请求在某处失败。
您需要在开发人员的控制台中查找错误并检查请求。
您还可以更改代码以使用$.ajax
,并将选项与当前参数一起传递给error
方法。如果调用error
方法,您将收到jqXHR
实例,字符串textStatus
和字符串errorThrown
作为参数。将这些传递到console.log
并查看它们以找出错误的线索。
$(".article").click(function() {
$.ajax({
url: "<%= click_path %>",
success: function(data) {
$(".article").html(data);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus);
console.log(errorThrown);
}
});
});
答案 1 :(得分:1)
很可能,您的ajax请求无法执行,因此,回调中的jQuery代码永远不会运行。
运行以下代码,查看是否收到错误警告:
var jqxhr = $.get( "<%= click_path %>", function() {
alert( "success" );
}
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});