如何从原始元素

时间:2015-11-12 19:05:01

标签: javascript jquery twitter-bootstrap

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功能时,这种情况不断发生。

为什么会这样?

2 个答案:

答案 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