OnN*_*NIX 3 javascript ajax jquery this
我正在进行$ .ajax调用,以下代码无法正常工作.警报导致'undefined'
$(document).ready( function {
$(".elem").on("click", function(e) {
e.preventDefault();
$.ajax( {
url: 'index.php',
data: {
'action': 'something'
},
success: function() {
alert($(this).data("foobar"));
}
});
});
)};
Run Code Online (Sandbox Code Playgroud)
但是,$(this)在输入ajax函数之前,我可以通过添加别名来使其正常工作.
$(document).ready( function {
$(".elem").on("click", function(e) {
var old_this = $(this);
e.preventDefault();
$.ajax( {
url: 'index.php',
data: {
'action': 'something'
},
success: function() {
alert(old_this.data("foobar"));
}
});
});
)};
Run Code Online (Sandbox Code Playgroud)
我无法为被点击的元素分配唯一ID,因此通过$("#id")访问它不是一个选项.
是否有更标准化的方法来访问在进入成功函数之前存在的$(this),或者这种方式是否正常工作?
你拥有它的方式就好了.默认情况下this,jQuery中的ajax回调是ajax设置对象(可以设置为via $.ajaxSettings). $.ajax还有一个context你可以设置的属性:
$.ajax({
url: url,
data: data,
context: this,
success: success
});
Run Code Online (Sandbox Code Playgroud)
然后你可以$(this)按预期使用,但我个人觉得重新分配this更容易理解.但是,您可能希望选择一个更好的变量名称old_this.
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |