2

Wordpressでウィジェットの1つにチェックボックスオプションを作成しようとしています。これをオンにすると、一部のコンテンツが表示/表示されます。

問題は、チェックボックスがオンになっているとコンテンツが表示されないことです。

    <p>
        <input type="checkbox" id="tcheckbox" class="checkbox" name="<?php echo $this->get_field_name('checkbox'); ?>" value="1" <?php checked( '1', $checkbox ); ?>/>
        <label for="<?php echo $this->get_field_id('checkbox');?>"><?php _e('My Checkbox.'); ?></label>

        <div id="tcheckboxdiv" style="display:none">
            <p>T One:</p>
            <p><input type="text" class="widefat" name="one" placeholder="1" readonly></p>
            <p>T Two:</p>
            <p><input type="text" class="widefat" name="two" placeholder="2" readonly></p>
        </div>
    </p>            

    <script type="text/javascript">
    jQuery(window).load(function() {
        jQuery("#tcheckbox").change(function() {
            jQuery("#tcheckboxdiv").fadeToggle("slow");
        });
    });
    </script>

私はjavaScriptとPHPにかなり慣れていないので、上記の競合するスクリプトがあるかどうか疑問に思っていました。ここでは完全に正常に機能しているようです:http: //jsfiddle.net/GhZDP/

ありがとうございました。

4

3 に答える 3

1

この問題は、提供したフィドルで実際に機能しているため、再現するのはかなり困難です。

あなたの状況で私がすることは、コードがalert()内に投げ込むだけで実行されるかどうかをチェックすることですjQuery(window).load()

その後、さまざまなアプローチを試して、以下をリッスンしDOM readyます。

jQuery(function () {
    // Code here
});

jQuery(document).ready(function() {
    // Code here
});

これは実際にはソリューションに対する答えではなく、この問題のデバッグを支援するためのサポートです。ただし、コメントを投稿するには大きすぎました(そして読めなくなりました)。

このような委任されたイベントリスナーを試すこともできます(これには、<form>タグに「widgetForm」IDを追加する必要があります)。

jQuery(function () {
    jQuery("#widgetForm").on("change", "#logocheckbox", function () {
        // Your code goes here; e.g. $("#logocheckboxdiv").fadeToggle("slow");
    });
});

しかし、繰り返しになりますが、私はあなたの問題を実際に再現することができないので、あなたがデバッグするのを推測して助けています。

于 2013-03-26T13:59:09.140 に答える
0

$WPはnoConflictモードで動作するため、jQueryオブジェクトはWordPressでは機能しません。jQueryは、としてjQueryではなく、として呼び出す必要があります$

<script type="text/javascript">
jQuery(window).load(function() {
    jQuery('#logocheckbox').change(function() {
        jQuery("#logocheckboxdiv").fadeToggle("slow");
    });
});
</script>

また、重複する質問を投稿しないでください

于 2013-03-27T14:56:01.317 に答える
0

jsFiddleは完全に正常に機能していますが、Wordpressのソースで正しく出力されていないため、上記のスクリプトは機能しません。

Wordpressの管理ページもjavaScriptを使用しているため、コーディングで衝突が発生します。

于 2013-03-30T18:18:41.473 に答える