我正在为我的 wordpress 主题创建一个选项仪表板,并且我设法完成了几乎所有工作,但事情是这样的:我添加了一个颜色选择器并且工作得非常好!如果单击输入字段,将弹出一个颜色选择器,以便您选择一种颜色(或改写 HEX),然后如果您在颜色选择器外部单击,它就会消失。
但是如果我添加第二个,第一个输入会弹出颜色选择器并将颜色值带到两个输入,并且在弹出之外单击后它不会消失。然后,如果我单击第二个输入,颜色选择器将不会弹出。
在其他情况下,如果我首先单击第二个,颜色选择器将弹出,但任何输入都会采用该值。
我的代码是这样的:
HTML 和 PHP:
case 'colorpicker':
?>
<div class="options_input options_text color-picker">
<input class="pickcolor" name="<?php echo $value['id']; ?>"
id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>"
value="<?php if ( get_option( $value['id'] ) != "") {
echo stripslashes(get_option( $value['id']) ); } else { echo $value['std']; } ?>" />
<div id="colorpicker"></div>
</div>
<?php
break;
我的js:
jQuery(document).ready(function($) {
$('#colorpicker').hide();
$('#colorpicker').farbtastic('.pickcolor');
$('#color').click(function() {
$('#colorpicker').fadeIn();
});
$(document).mousedown(function() {
$('#colorpicker').each(function() {
var display = $(this).css('display');
if ( display == 'block' )
$(this).fadeOut();
});
});
});
jQuery(document).ready(function($) {
$('.pickcolor').click( function(e) {
colorPicker = jQuery(this).next('div');
input = jQuery(this).prev('input');
$(colorPicker).farbtastic(input);
colorPicker.show();
e.preventDefault();
$(document).mousedown( function() {
$(colorPicker).hide();
});
});
});
谁能帮我调整 js 使其适用于多个孪生字段?