我试图在Wordpress中为我的一个小部件创建一个复选框选项,这样当它被选中时,它将显示/显示一些内容。
问题是选中复选框时它不会显示内容。

    <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/
谢谢您。

最佳答案

这个问题很难再现,因为它实际上是在你提供的小提琴工作。
在您的情况下,我要做的是检查代码是否通过在alert()中抛出jQuery(window).load()来执行
之后,尝试不同的方法来收听DOM ready

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

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

这并不是解决方案的真正答案,而是帮助您调试此问题的支持。但它太大了(而且变得不可读),无法在评论中发表。
您也可以尝试这样的委托事件侦听器(这要求您将“widgetForm”ID添加到<form>标记中):
jQuery(function () {
    jQuery("#widgetForm").on("change", "#logocheckbox", function () {
        // Your code goes here; e.g. $("#logocheckboxdiv").fadeToggle("slow");
    });
});

不过,我只是猜测和帮助你调试,因为我不能真正重现你的问题。

09-30 14:53
查看更多