我有一种情况需要记住在更改之前tagsInput字段的值是什么。但是,某些信息是动态绑定的,因此当输入发生变化时,我的变量的值也会引用它。
var topics = $("#topics").tagsinput('items');
$('#topics').tagsinput('add', 'A');
$('#topics').tagsinput('add', 'B');
var LISA = topics;
alert('Lisa is: ' + JSON.stringify(LISA));
$('#topics').tagsinput('add', 'newone');
alert('Lisa is: ' + JSON.stringify(LISA));
所以我想要的是变量Lisa
到而不是添加了newone
。
但是使用bootstrap标签输入jQuery插件,变量会随着值动态变化。任何人都知道如何关闭此绑定,以便我可以回想一下添加新信息之前该字段的值是什么?
答案 0 :(得分:1)
这与bootstrap-tags本身无关。它是JavaScript创建变量的方式的副产品。例如,考虑以下JavaScript:
var array = ["A", "B"];
var copy = array;
array.push("C");
copy.push("D");
console.log(array);
console.log(copy);
array
和copy
都将等于["A", "B", "C", "D"]
对象copy
只包含一个返回array
的引用,因此它们都会解析为同一个对象。更新一个更新。另见:value of an array changes original array。
您想要做的是clone an object in javascript,如下所示:
var LISA = JSON.parse(JSON.stringify(topics));
LISA
更改时,topics
现在不会更新。