我正在尝试向上滑动元素,然后将其删除。但是我似乎无法将元素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)
});


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

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

10-09 14:08