jQuery Ajax 回调无法识别 $(this) 对象
jQuery Ajax callback doesn't recognise $(this) object
这是我的代码
$(".library-fields-container div.field-content img").click(function(){
var nid = getImageNodeID($(this).siblings(".image-span").text());
$.ajax({
url: Drupal.settings.basePath + 'views/ajax',
type: 'POST',
dataType: 'json',
data: 'view_name=fehrest&view_display_id=block_1&view_args='+nid,
success: function(response) {
var output = response[1].data;
alert(output);
$(this).hide();
},
error: function(data) {
alert('An error occured!');
}
});
});
我确定 output
变量打印了一些东西并且它不是空的,因为警报功能显示了它的内容。
问题是它没有隐藏 $(this)
而当我把
$(this).hide();
在 Ajax 调用之前的点击事件开始时,它会隐藏图像。
Ajax 对象的 $(this)
回调函数是什么?
在此上下文中 - this
不是元素。
在 ajax 调用 this
到 self
变量之前保存。喜欢
var self = this;
$.ajax({
...
success: function(response) {
var output = response[1].data;
alert(output);
$(self).hide();
}
});
$(".library-fields-container div.field-content img").click(function(){
var target = $(this);
var nid = getImageNodeID($(this).siblings(".image-span").text());
$.ajax({
url: Drupal.settings.basePath + 'views/ajax',
type: 'POST',
dataType: 'json',
data: 'view_name=fehrest&view_display_id=block_1&view_args='+nid,
success: function(response) {
var output = response[1].data;
alert(output);
target.hide();
},
error: function(data) {
alert('An error occured!');
}
});
});
这是我的代码
$(".library-fields-container div.field-content img").click(function(){
var nid = getImageNodeID($(this).siblings(".image-span").text());
$.ajax({
url: Drupal.settings.basePath + 'views/ajax',
type: 'POST',
dataType: 'json',
data: 'view_name=fehrest&view_display_id=block_1&view_args='+nid,
success: function(response) {
var output = response[1].data;
alert(output);
$(this).hide();
},
error: function(data) {
alert('An error occured!');
}
});
});
我确定 output
变量打印了一些东西并且它不是空的,因为警报功能显示了它的内容。
问题是它没有隐藏 $(this)
而当我把
$(this).hide();
在 Ajax 调用之前的点击事件开始时,它会隐藏图像。
Ajax 对象的 $(this)
回调函数是什么?
在此上下文中 - this
不是元素。
在 ajax 调用 this
到 self
变量之前保存。喜欢
var self = this;
$.ajax({
...
success: function(response) {
var output = response[1].data;
alert(output);
$(self).hide();
}
});
$(".library-fields-container div.field-content img").click(function(){
var target = $(this);
var nid = getImageNodeID($(this).siblings(".image-span").text());
$.ajax({
url: Drupal.settings.basePath + 'views/ajax',
type: 'POST',
dataType: 'json',
data: 'view_name=fehrest&view_display_id=block_1&view_args='+nid,
success: function(response) {
var output = response[1].data;
alert(output);
target.hide();
},
error: function(data) {
alert('An error occured!');
}
});
});