0

そのため、ユーザーが farbtastic を使用してフォントなどの色を選択できるように、一連のフォーム フィールドを作成する foreach ループがあります。ループはおそらく 60 フィールドのフィールドを作成し、カラーピッキングが機能している間、何らかの理由で 20 フィールドの後 farbtastic は 16 進コードでの入力フィールドの更新を停止します。入力フィールドの背景色は変更されますが、フィールドは更新されません。

さらに奇妙なのは、これらすべてのフィールドが別々のタブにあり、ワードプレスがタブを処理する方法は、それぞれを新しいページに配置することです。そのため、ページをリロードする必要があります。したがって、後のタブ (したがって後のフィールド) に移動すると、2 つのフィールドのうちの 1 つが正しく機能しますが、ほとんどのフィールドは機能しません。同様に、あるタブのフィールド 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でターゲットにする必要があるかどうか疑問に思います

4

1 に答える 1

0

ちょっと解決しました。

value="<?php echo $options['kjd_'.$name.'_fonts'][$element] ? $options['kjd_'.$name.'_fonts'][$element] : ''; ?>

そのifステートメントの最後の部分を空にすることはできません。それは''(空白)である必要があります。むしろ、farbtasticが入力を更新するには、そこに何らかの値がなければなりません。そのため、ユーザーの混乱を避けるために「none」を使用しました。

私のコードは今言う

value="<?php echo $options['kjd_'.$name.'_fonts'][$element] ? $options['kjd_'.$name.'_fonts'][$element] : 'none'; ?>
于 2012-09-05T13:16:36.347 に答える