javascript - 将参数传递到 JQuery.slideUp() 回调中

标签 javascript jquery

我正在尝试向上滑动我的元素,然后将其删除。但是我似乎无法将元素 ID 传递到删除它的回调中。

我无法对该值进行硬编码,因为它必须是动态的。

insertedTemplates 是插入到页面中的模板的集合。当用户更改他/她的选项时,会插入一个新元素并删除旧元素。

以下操作将无法删除该元素,因为该元素未定义:

    var elementId = insertedTemplates[i].id;
    $('#'+elementId).slideUp(400, function(elementId) {
        $('#'+elementId).remove();
    });

我发现一篇文章建议只需在函数声明之后添加值来传递该值。

这将立即删除该元素:

    var elementId = insertedTemplates[i].id;
    $('#'+elementId).slideUp(400, function() {
        $('#'+elementId).remove();
    }(elementId));

最佳答案

您不需要传递元素 ID。在回调中使用 $(this)

var elementId = insertedTemplates[i].id;
$('#' + elementId).slideUp(400, function (elementId) {
    $(this).remove(); // <---- Use $(this)
});
slideUp 回调中的

$(this) 是调用该函数的元素。

关于javascript - 将参数传递到 JQuery.slideUp() 回调中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714414/

相关文章:

javascript - 在外部函数中 knockout 可观察数组索引

javascript - Selenium Webdriver JavaScript : Promise seems to not be resolved

javascript - Jquery 点击事件适用于第二次点击

javascript - 使用多个 &lt;script&gt; 标签不起作用 - 只调用一个脚本

php - 如何将表中的所有 MySQL 变量解析为 PHP

javascript - 无需库帮助的简单 JavaScript 拖放

javascript - 在 JS 中按类获取父项中的项目数

javascript - MVC 如何接收来自 JSON 的对象数组?

javascript - 有条件追加而不过滤

jQuery - 如何知道何时添加新元素?