我试图将元素向上滑动,然后将其删除。但是我似乎无法将元素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));
答案 0 :(得分:2)
您无需传递元素ID。在回调中使用$(this)
。
var elementId = insertedTemplates[i].id;
$('#' + elementId).slideUp(400, function (elementId) {
$(this).remove(); // <---- Use $(this)
});
$(this)
回调中的 slideUp
是调用该函数的元素。