似乎每次调用 edit() 函数时都会覆盖该函数中的变量。
function edit(el)
{
$edit_img = $(el);
$btn = $('<img width="15" height="15" src="images/add.png">');
$edit_confirm = $edit_img.parent();
$edit_confirm.append($btn);
function restore_span()
{
$edit_img.show();
$btn.remove();
}
$btn.click(restore_span);
$edit_img.hide();
}
从此 onclick 处理程序调用编辑函数:
<img src = "images/edit-icon.png" width = "15px" height = "15px" onclick="edit(this)" />
当对多个图像(如上面的图像)调用 edit() 时,只有最近创建的图像会被删除。
我应该如何修改此函数才能修复此行为?
最佳答案
使用 var $btn
代替 $btn
(也适用于其他变量)
当你写的时候
var $btn
- 您创建局部变量
当没有 var
时 - 它是全局的
因此,在您的情况下,您每次都会替换这些变量(例如恢复函数中使用的 $edit_img
)
关于javascript - 内部函数引用上次调用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13711068/