在bootstrap-tagsinput中,有一项功能可以将事件绑定到原始元素(输入元素)。
前:
$('input').on('beforeItemRemove', function(event) {
// event.item: contains the item
// event.cancel: set to true to prevent the item getting removed
});
但如果我destroy
tagsinput
并再次初始化,如下所示
$('input').tagsinput('destroy');
$('input').tagsinput();
beforeItemRemove
事件将触发2次。如果我再次删除tagsinput
功能并再次初始化。当我删除另一个标记时,beforeItemRemove
会触发3次。当我删除并添加tagsinput功能时,这种情况不断发生。
为什么会这样?
答案 0 :(得分:1)
尝试使用delegate
$(document).on('beforeItemRemove', 'input', function(event) {
// event.item: contains the item
// event.cancel: set to true to prevent the item getting removed
});
但是,我只是转到您提供的链接,将您的处理程序附加到开发人员控制台并destroy
/ initialzer
,它只为我开了一次。因此,代码中的其他内容可能会导致问题。
答案 1 :(得分:1)
基于其他评论和答案,我找到了避免这种行为的方法。我编辑了 function monsterDescription(name, health, attack)
{
var monsterType =
{
"mN" : name,
"nOHP": health ,
"pA" : attack
}
document.getElementById("monster").innerHTML = JSON.stringify(monsterType);
}
函数。
Destroy