所以,我有一个 foreach 循环创建一堆表单字段,以允许用户使用 farbtastic 为字体等选择颜色。该循环为大约 60 个字段创建字段,而颜色选择工作,无论出于何种原因,在 20 个字段之后 farbtastic 停止使用十六进制代码更新输入字段。它会更改输入字段的背景颜色,但不会更新字段。
更奇怪的是,所有这些字段都在单独的选项卡中,而 wordpress 处理选项卡的方式是将每个选项卡放在一个新页面上。所以页面必须重新加载。因此,一旦您进入后面的选项卡(以及后面的字段),其中两个字段之一将正常工作,但大多数都不能正常工作。就像,一个选项卡上的字段 2 可以正常工作,但不同选项卡上的相同字段不能。
现在我有一个控制颜色选择器的 jQuery 方法:
// Color Picker for js file
jQuery('.pickcolor').click( function(e) {
colorPicker = jQuery(this).next('div');
input = jQuery(this).prev('input');
jQuery(colorPicker).farbtastic(input);
colorPicker.show();
e.preventDefault();
jQuery(document).mousedown( function() {
jQuery(colorPicker).hide();
});
});
表单字段几乎都像这样:$name 是部分名称,$element 是选择颜色的形式(嵌套的 foreach 循环)
<div class="color_option option" style="position: relative;">
<label for="<?php echo $name; ?>_fonts"><?php echo $elementName;?> Color</label>
<input class="link_color" type="text" id="<?php echo $name; ?>_fonts"
name="kjd_<?php echo $name;?>_settings[kjd_<?php echo $name; ?>_fonts][<?php echo $element; ?>]"
value="<?php echo $options['kjd_'.$name.'_fonts'][$element] ? $options['kjd_'.$name.'_fonts'][$element] : ''; ?>"
style="background:<?php echo $options['kjd_'.$name.'_fonts'][$element]?>; color:<?php echo $options['kjd_'.$name.'_fonts'][$element]?>;"
/>
<input type='button' class='pickcolor button-secondary' value='Select Color'>
<div style="position: absolute;" class="colorpicker"></div>
所以 jQuery 看起来不错,但我想知道是否应该在 foreach 循环中动态创建 jquery 以按 ID 定位每个字段