我有一系列div
带有锚点的标签,单击这些标签时,会向下滑动一个填充有 AJAX 的面板。代码看起来像这样:
$('.details').click(function(e) {
$this = $(this).parents('.container');
var id = $this.data('id');
$(this).slideToggle('slow', function() {
if ($(this).is(":visible")) {
$.ajax({
type: 'POST',
url: '/method',
data: { id: id },
timeout: 5000
}).done(function(result){
console.log('Done was fired.');
console.log($this);
// This is my headache:
// Using $this here to do some stuff
}).fail(function(jqXHR, textStatus, errorThrown){
console.log('Fail was fired.');
console.log(jqXHR, textStatus, errorThrown);
});
如果我快速单击两个链接,第一个开始,然后在它完成之前,第二个开始,覆盖这一行:$this = $(this).parents('.container');
,最终给人的印象是 ajax 永远不会完成。如何确保我可以访问正确的$this
? 我应该继续查询DOM,还是使用某种变量,变量名?