如何让 jQuery 在管理区域工作?

Posted

技术标签:

【中文标题】如何让 jQuery 在管理区域工作?【英文标题】:How to make jQuery work in admin area? 【发布时间】:2013-03-29 06:05:33 【问题描述】:

我在 WordPress 的主题选项页面中包含了 Twitter Bootstrap,以帮助设置主题选项页面的样式。之前,当我取消注册 jQuery 并添加我自己的版本时,所有代码都在使用 $,因为我不必担心 WordPress 总是将 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 键,它会正常工作。

怎么了?

【问题讨论】:

【参考方案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');

【讨论】:

【参考方案2】:

忽略排队脚本和样式表的correct way,这就是我一直这样做的方式:

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

来自this WordPress Answer。

【讨论】:

以上是关于如何让 jQuery 在管理区域工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何让英雄区域填满整个浏览器窗口

jquery实现的让图片在网页的可视区域里四处漂浮的效果

在jquery mobile中使按钮点击区域更大

如何使用 jQuery 获取 div 全部内容的高度?

请教UE4怎么让AI移动到某个区域?

如何将自定义 css 和 js 文件添加到 wordpress 的管理区域 [关闭]