如何将颜色选择器函数集成到动态文本字段中
How to Integrate Color Picker Function into Dynamic Text Field
我目前在创建集成了颜色选择器功能的动态文本字段时遇到了一些问题。
以下是HTML代码:
<div id="color_div">
<input type="text" name="color" id="p_color" maxlength="7" value="#365EBF">
<a href="#" id="addColor">Add Color Picker</a>
</div>
创建动态文本字段的javascript功能运行良好:
/* -----------------------------------------------
Add Multiple Color
----------------------------------------------- */
var multiple_color = 1;
$('#addColor').click(function() {
multiple_color++;
event.preventDefault ? event.preventDefault() : event.returnValue = false;
$('#color_div').after('<div id="color_div2"><input type="text" name="color[]" id="p_color" maxlength="7" value="#365EBF"><a href="#" id="remColor">Remove</a></div>');
return false;
});
$(document).on('click', '#remColor', function() {
event.preventDefault ? event.preventDefault() : event.returnValue = false;
$('#remColor').parents('#color_div2').remove();
return false;
});
这是调用颜色选择器函数的代码,但它只适用于开头存在的文本字段。对于动态创建的文本字段,它不起作用。
$(document).ready(function() {
$('#p_color').colorpicker()
})
我该怎么解决这个问题?
第一个id应该是唯一的,因此您需要更改第二个颜色选择器的id。
第二,一旦你添加了动态项目,你就需要实例化它的颜色选择器
我会这样做:
var multiple_color = 1;
$('#addColor').click(function(e) { // include the e in the function so you can use e.preventDefault()
e.preventDefault();
multiple_color++; // use this to keep ids unique
var id = 'p_color' + multiple_color; // id of input
$('.color_div')
.last()
.after('<div id="color_div' + multiple_color + '" class="colour_div"><input type="text" name="color[]" id="' + id + '" maxlength="7" value="#365EBF"><a href="#" class="remColor">Remove</a></div>'); // change link id remColor to class and add color_div class to div
// add new div after the last div - if you want to add it after the first colour picker then just put it back to use the id of the first colour picker div
$('#' + id).colorpicker(); // instantiate color picker on the new object you just added
});
$(document).on('click', '.remColor', function(e) { // change selector to class
e.preventDefault();
$(this).parent('.colour_div').remove(); // remove current div
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="color_div1" class="color_div"> <!-- add color_div class -->
<input type="text" name="color" id="p_color1" maxlength="7" value="#365EBF">
<a href="#" id="addColor">Add Color Picker</a>
</div>
相关文章:
- createjs动态文本重叠
- 在 JavaScript 中添加动态文本
- 动态文本大小JavaScript在IE中不起作用
- 使用Date.parse();从动态文本中删除(或允许)序数字符;
- 用动态文本和动态大小填充多边形
- Javascript/jQuery链接/href补充的动态文本
- 通过javascript的动态文本框
- 动态文本的 SVG 线条动画
- 动态文本区域的Javascript验证
- 通过jquery验证动态文本
- 将单击按钮时的动态文本区域值传递给javascriptphp
- 如何将动态文本框值分配给相应的模型
- 如何创建动态文本并使用 KineticJS 对其进行编辑.任何可以说明的例子都会很棒
- 使用颜色选取器更改所选动态文本框的文本颜色
- 发布多个动态文本框值
- 从选定的对象获取动态文本 - (通过 ID 和“活动”类) - jQuery
- 动态文本区域高度
- 为动态文本框创建新的会话变量
- PHP 邮件中的动态文本框
- 钛应用器动态文本区域高度增加