Javascript 在ajax调用后执行JQuery函数时出现问题
在执行Ajax调用后,我试图隐藏Javascript 在ajax调用后执行JQuery函数时出现问题,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,在执行Ajax调用后,我试图隐藏输入的父项,但由于某种原因,它不起作用,即没有效果,父项也没有隐藏 这是我的JQuery代码片段: $( ".getqty" ).mouseover(function() { var split = this.id.split(":"); var color = split[0]; var size = split[1]; var prodID = split[2]; $.ajax({ //create an aja
输入的父项,但由于某种原因,它不起作用,即没有效果,父项也没有隐藏
这是我的JQuery代码片段:
$( ".getqty" ).mouseover(function() {
var split = this.id.split(":");
var color = split[0];
var size = split[1];
var prodID = split[2];
$.ajax({ //create an ajax request to loadstuff.php
type: 'POST',
url: 'includes/loadstuff.php',
dataType: 'html', //expect html to be returned
data:'color='+color+'&size='+size+'&prodID='+prodID,
success: function(response){
$(this).parent().hide(); //Problematic part
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});
<a href='#'>
<input class='getqty id='a:b:c' type='text'>
</a>
这是我的HTML:
$( ".getqty" ).mouseover(function() {
var split = this.id.split(":");
var color = split[0];
var size = split[1];
var prodID = split[2];
$.ajax({ //create an ajax request to loadstuff.php
type: 'POST',
url: 'includes/loadstuff.php',
dataType: 'html', //expect html to be returned
data:'color='+color+'&size='+size+'&prodID='+prodID,
success: function(response){
$(this).parent().hide(); //Problematic part
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});
<a href='#'>
<input class='getqty id='a:b:c' type='text'>
</a>
$(此)
被移到原始函数调用之外。您可以给它一个变量,使其附加到正确的选择器。比如:
$( ".getqty" ).mouseover(function() {
var $this = $(this);
var split = this.id.split(":");
var color = split[0];
var size = split[1];
var prodID = split[2];
$.ajax({ //create an ajax request to loadstuff.php
type: 'POST',
url: 'includes/loadstuff.php',
dataType: 'html', //expect html to be returned
data:'color='+color+'&size='+size+'&prodID='+prodID,
success: function(response){
$this.parent().hide(); //Problematic part
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});
$(this)
指的是不同的对象:
success: function(response){
$(this).parent().hide(); //Problematic part
},
因此,请按以下方式更改代码:
$( ".getqty" ).mouseover(function() {
var split = this.id.split(":");
var color = split[0];
var size = split[1];
var prodID = split[2];
var $this = $(this); // Add this
$.ajax({ //create an ajax request to loadstuff.php
type: 'POST',
url: 'includes/loadstuff.php',
dataType: 'html', //expect html to be returned
data:'color='+color+'&size='+size+'&prodID='+prodID,
success: function(response){
$this.parent().hide(); // Change here.
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});