将参数传递给JQuery.slideUp()回调

时间:2016-01-11 04:56:54

标签: 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));

1 个答案:

答案 0 :(得分:2)

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

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

slideUp是调用该函数的元素。