1

我在 WordPress 的主题选项页面中包含了 Twitter Bootstrap,以帮助设置主题选项页面的样式。之前,当我取消注册 jQuery 并添加我自己的版本时,所有代码都$jQuery使用$. .

不幸的是,您不应该取消注册 jQuery,即使它只在您自己的管理页面上完成。

所以我四处寻找一些仍然$在 jQuery 中使用的方法并写了这个:

(function($){   
    $(document).ready(function(){
        $('.posts').click(function(){
            if ($(this).attr("id") == "list"){
                $('.sectionLists').show();
            } else {
                $('.sectionLists').hide();
            }
        });
});
})(jQuery);

没有控制台错误 - 在我的代码中,但我的 Twitter Bootstrap Javascript 相关函数都不起作用,例如 Popovers、Tabs 或其他任何类似性质的函数,并且上面的代码甚至不起作用。

但是,如果我将它粘贴到 Chrome 控制台并按 Enter 键,它会正常工作。

这是怎么回事?

4

2 回答 2

1

您可能正在尝试在加载 jQuery 之前调用它——这就是它在页面中不起作用但在控制台中起作用的原因。

您是否添加了如下所示的 jQuery 依赖项,如 Codex 中所示wp_enqueue_script

function iamb_inc_bootstrap() {

    wp_register_script(
        'js_bootstrap',
        get_template_directory_uri() . '/bootstrap/js/bootstrap.min.js',
        array('jquery'),
        '20130219',
        true
    );

    wp_enqueue_script('js_bootstrap');
}
add_action('wp_enqueue_scripts', 'iamb_inc_bootstrap');
于 2013-04-07T01:26:58.880 回答
1

忽略将脚本和样式表排入队列的正确方法,我总是这样做:

add_action( 'admin_footer', 'wpse_46677_change_menu_item' );

function wpse_46677_change_menu_item()
{
    ?>
        <script type="text/javascript">
            jQuery(document).ready( function($) {
                $( "#menu-appearance" )
                    .find( "li:contains( 'Header' )" )
                    .html( '<a href="themes.php?page=custom-header">My Text</a> ');
            });     
        </script>
    <?php
}

这个 WordPress 答案

于 2013-04-07T01:49:35.837 回答