gpt4 book ai didi

javascript - $这会被快速连续的点击覆盖

转载 作者:行者123 更新时间:2023-11-30 10:27:57 25 4
gpt4 key购买 nike

我有一系列带有 anchor 的 div 标签,单击这些 anchor 时,向下滑动一个面板,该面板填充了 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,还是使用某种变量,变量名?

最佳答案

因为它是一个全局变量!

    $('.details').click(function(e) {

$this = $(this).parents('.container');
^^^
No var

添加 var 使其具有本地作用域并且不会被覆盖

    $('.details').click(function(e) {

var $this = $(this).parents('.container');
^^^

关于javascript - $这会被快速连续的点击覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18675591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com