通过删除相关的DOM存在来重新初始化jQuery插件

时间:2012-08-13 19:40:05

标签: javascript jquery html

我正在使用jQuery Tokeninput plugin并且它的功能很好。虽然我缺少的是一种使用新标签数据重新初始化它的方法。我不能在现有的tokeninput-enabled字段上运行$('.mytokeninput').tokenInput('init', new_tags_list);之类的内容。我使用解决方法 - 我清除.mytokeninput的包装div,向其添加一个新的.mytokeninput,然后在其上运行一个新的tokenInput实例。

我想知道这是不是一个非常糟糕的主意,我应该采用不同的方式,或者从最佳实践的角度来看,它或多或少是可以接受的。请指教。

2 个答案:

答案 0 :(得分:1)

你试过这个:

$( input ).tokenInput( 'clear' );
// where input is a reference to your text field

它清除了令牌输入中的所有令牌。

答案 1 :(得分:0)

以上回答有关init的评论对我不起作用。我这样做的方式如下:(coffeescript)

# remove the tokens input list that it creates everytime the item is initialized
$('.token-input-dropdown').remove()    
$('.token-input-list').remove()

# initialize the list
$('#tokenList').tokenInput(
  [{'id':'1', 'name':'first'}]
)

不理想必须删除div,但这绝对适用于我。 (此外,如果您使用不同的主题,则必须将$('。token-input-dropdown')更改为$('。token-input-dropdown-facebook')或您正在使用的任何主题。