【发布时间】:2017-04-02 23:52:31
【问题描述】:
我有一个使用jscolor.com 库的文档,供用户选择和存储颜色。我还使用 JQuery 函数向屏幕添加行,因此用户可以创建和定义多种颜色。问题是,当添加新行时,不会为添加的元素重新初始化 Javascript。
这里是有问题的代码:
<script type="text/javascript">
$(document).ready(function(){
var i=1;
$("#add_row").click(function(){
$('#addr'+i).html("<div id='addr" + i + "'>" +
"<div class='col-xs-4'>" +
"<input type='text' name='config_color[" + i + "][css]' id='input-color[" + i + "][css]' class='form-control' />" +
"</div>" +
"<div class='col-xs-2'>" +
"<input type='text' name='config_color[" + i + "][value]' id='input-color[" + i + "][value]' class='form-control jscolor' />" +
"</div>" +
"<div class='col-xs-2'>" +
"<input type='text' name='config_color[" + i + "][default]' id='input-color[" + i + "][default]' class='form-control' />" +
"</div>" +
"<div class='col-xs-4'>" +
"<input type='text' name='config_color[" + i + "][notes]' id='input-color[" + i + "][notes]' class='form-control' />" +
"</div>" +
"</div>");
$('#tab_logic').append('<div id="addr'+(i+1)+'"></div>');
i++;
});
$("#delete_row").click(function(){
if(i>1){
$("#addr"+(i-1)).html('');
i--;
}
});
}).trigger('change');
</script>
我在JSFiddle 上做了一个简化的例子——你可以在第一行看到,如果你点击颜色单元格,它会给你一个弹出的调色板。
如果您添加额外的行,弹出选择器将不起作用。
但是,所有数据都正确存储在数据库中,所以我有一个实例,其中一些由 Javascript 添加的元素可以正常工作而其他元素不能正常工作?
(也完全披露,我首先在Reddit 上询问 - 因此这是一个交叉帖子。
【问题讨论】:
标签: javascript jquery jscolor