我一直在使用jQuery中的ajax工具,并且在成功执行ajax时使用$(this)遇到了问题。我想知道是否有可能在您的成功中使用$(this),正如我所见的教程使用它那样,但是当我尝试使用它时,它不起作用…但是,如果我使用$(document)或其他某种方法来获得它,我想要的对象工作正常…任何帮助将不胜感激,因为我对jQuery很陌生!提前致谢!我正在玩的代码如下:
$(".markRead").click(function() {
var cId = $(this).parents("div").parents("div").find("#cId").val();
var field = "IsRead";
$.ajax({
type: "POST",
url: "ajax/contract_buttons.php",
dataType: "text",
data: "contractId=" + cId + "&updateField=" + field,
async: false,
success: function(response) {
//$(this) doesnt recognize the calling object when in the success function...
$(this).find("img").attr("src", "images/read.png");
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.statusText);
alert(thrownError);
}
});
});
this
总是引用当前的执行上下文,因此它不必像ajax成功处理程序那样在回调函数中保持不变。如果要引用它,则必须按照Dennis所指出的那样进行操作,并将其值保存到自己的局部变量中,以便以后可以引用它,即使实际this
值可能已设置为其他值。这绝对是javascript的细微差别之一。将代码更改为此:
$(".markRead").click(function() {
var cId = $(this).parents("div").parents("div").find("#cId").val();
var field = "IsRead";
var element = this; // save for later use in callback
$.ajax({
type: "POST",
url: "ajax/contract_buttons.php",
dataType: "text",
data: "contractId=" + cId + "&updateField=" + field,
async: false,
success: function(response) {
//$(this) doesnt recognize the calling object when in the success function...
$(element).find("img").attr("src", "images/read.png");
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.statusText);
alert(thrownError);
}
});
});
我刚刚安装了 PyCharm 社区版 3.4.1,并尝试在其中制作一个简单的 pygame 项目。我发现代码完成以一种奇怪的方式运行。在这种情况下: 当我键入事件时会立即显示带有方法的完成弹出窗口。但在第二种情况下: 弹出窗口仅包含方法。 如何学习自动完成工具来更深入地查看库?
问题内容: 我想知道为什么$(this)在jQuery ajax调用后不起作用。 我的代码是这样的。 为什么在ajax调用之后,$(this)在这种情况下不起作用?如果我在ajax之前使用它会起作用,但之后没有效果。 问题答案: 在jQuery ajax回调中,“ this”是对ajax请求中使用的选项的引用。它不是对DOM元素的引用。 您需要首先捕获“外部” $(this) :
问题内容: 我的PHP代码将JSON数据返回到jquery自动完成功能,但是自动完成功能不起作用 jQuery自动完成 PHP代码 JSON数据输出 在输入“ Ga”时,我在前端得到了空的li标签。 问题答案: 从: http://jqueryui.com/demos/autocomplete/ 您的JSON需要包含或(或两者)。更改为,它应该可以正常工作。
API 2:GET:/school/student/all
问题内容: 我使用Eclipse Oxygen.2 Release(4.7.2) 我尝试了一些lambda表达式,并遇到以下问题: 我编写不带类型的lambda参数,Eclipse自动完成效果很好: 如果我编写具有类型的lambda参数,则不会自动完成: 但是我可以自己编写,并且一切正常: 这是Eclipse中的错误吗?有人可以解释这种行为吗? 问题答案: Yes, this is a known
我在一个网站上工作,遇到了一个问题,点击我的“删除”链接会出现一个错误页面。在localhost上运行良好-无法理解为什么在Heroku站点上会有所不同。 有人知道这是怎么回事吗? 我的“图片”控制器: 我的图片/新视图: 以下是我尝试删除图片时的heroku日志(从导航到新图片页面开始(同一视图中的新建和编辑功能): 2015-11-15T16:13:49.189857 00:00 heroku