0

我在一段脚本中遇到问题,该脚本在对象“隐藏”后删除了 X 时间

selector = getselector($(this).parent().parent());
console.log("Clicked Cancel");
$(this).parent().parent().addClass('hidden');
setTimeout(function() {
    $(selector).remove();
}, 400);

我从这里编辑了一些脚本来制作函数getselector,因为 $(this) 在 setTimeout 内不起作用。现在这段代码可以工作了,只要你不要再次运行太快。问题似乎是当另一个节点在时间跨度(当前为 400 毫秒)内被删除时,变量选择器会变得混乱

我想不出一个简单的方法来解决它。:(

4

3 回答 3

1

您还可以通过以下方式将删除排队,这会使您的代码更辣一点:

$(this).parent().parent().addClass('hidden').delay(400).queue(function() {
   $(this).remove();
});
于 2012-05-25T17:45:32.733 回答
1

答案很简单:不要selector全局化,即使用var. 哦,只需存储元素而不是尝试构建选择器:

var elem = $(this).parent().parent();
elem.addClass('hidden');
setTimeout(function() {
    elem.remove();
}, 400);
于 2012-05-25T17:40:32.457 回答
-1

在流程开始时设置一个值为 true 的变量。在操作时,检查它是否不为假,然后将其设置为假,然后在完成后返回真。如果你点击它太快,它会检查你的变量,再次看到它是真的,并会再次执行该操作。

于 2012-05-25T17:41:23.313 回答