我已阅读有关context setting of jQuery.ajax()的文档。
当在ajax调用之外触发DOM操作时,DOM成功受到影响:
var element = $('#logo');
element.addClass('good');
console.log(element);
$.ajax({
context: element,
url: 'myfile.json',
type:'get',
dataType:'json',
success: function(data) {
//reserved
}
});
当我在ajax调用中移动DOM操作时,预期的结果显示在控制台输出中,但不实际反映在DOM中:
var element = $('#logo');
$.ajax({
context: element,
url: 'myfile.json',
type:'get',
dataType:'json',
success: function(data) {
$(this).addClass('good');
console.log($(this));
}
});
// [h1#logo.good, selector: "#logo", context: document]
我也试过引用'element'而不是$(this)而没有成功:
var element = $('#logo');
$.ajax({
context: element,
url: 'myfile.json',
type:'get',
dataType:'json',
success: function(data) {
element.addClass('good');
console.log(element);
}
});
// [h1#logo.good, selector: "#logo", context: document]
控制台输出中的上下文是“文档”而不是“#logo”似乎很奇怪。在任何情况下,元素引用似乎都会在ajax调用中丢失。
我已经在similar question的已接受答案中尝试了所有这三种解决方案,但无济于事。
有什么想法吗?我要变灰了。
答案 0 :(得分:0)
您显然错误openssl pkcs12 -export -in file.pem -out file.p12
context
$.ajax()
context
jQuery()
个context
。它们是不同的。
$.ajax()
的 $.ajaxSettings
上下文
类型:PlainObject
此对象将是所有与Ajax相关的回调的上下文。默认情况下,上下文是一个对象 表示调用中使用的Ajax设置(
$.ajax
已合并 将设置传递给complete
)。例如,指定DOM 元素作为上下文将使$.ajax({ url: "test.html", context: document.body }).done(function() { $( this ).addClass( "done" ); });
的上下文 请求的回调,如下:
this
在$.ajax()
个回调中设置context
个对象。 jQuery()
$()
上下文
键入:Element或jQuery
DOM元素,文档或jQuery 用作上下文
选择器上下文
默认情况下,选择器在DOM开始时执行搜索 在文档根目录。但是,可以给出替代上下文 使用可选的第二个参数到
$( "div.foo" ).click(function() { $( "span", this ).addClass( "bar" ); });
函数进行搜索。 >例如,要在事件处理程序中进行搜索,可以限制搜索:
click