如何在WordPress 3.3管理员中禁用hoverIntent

时间:2011-12-13 作者:supertrue

我不喜欢新弹出菜单或管理栏中的hoverIntent;对我来说,这让我的页面感觉很慢。

在新的Wordpress管理和工具栏中禁用hoverIntent(或更改其选项)的Wordpress友好方式是什么?

我在管理页面源代码中看到的hoverIntent的唯一位置是:

<script type=\'text/javascript\' src=\'http://mysite.com/wp-admin/load-scripts.php?c=1&amp;load=admin-bar,hoverIntent,common,jquery-color,suggest,inline-edit-post,jquery-form&amp;ver=26e0371f31adb44206d9f999828c9182\'></script>

1 个回复
最合适的回答,由SO网友:t31os 整理而成

WordPress core中的菜单在哪里附加了悬停意图

以下两个文件分别将hoverIntent作为工具栏和菜单的单击处理程序进行附加。

Admin Bar
Theadmin-bar.js 文件在的第13行的顶部栏上设置悬停意图admin-bar.js.

Admin Menu
Thecommon.js 文件在的第185行的侧栏菜单上设置悬停意图common.js.

如何从工具栏和菜单中删除HoverIntent WordPress在document ready上为工具栏和菜单附加了HoverIntent处理程序,因此如果我们要重新绑定这些点击处理程序,我们需要确保在WordPress完成JS业务后再这样做。

确保脚本在正确的时间加载的最简单方法是在管理和设置中启动一个排队admin-barcommon 脚本作为从属项。

在管理头设置中排队所需的依赖项

将回调附加到admin_head 并启动一个包含两个必需依赖项的队列。

add_action( \'admin_head\', \'disable_admin_hoverintent\' );

function disable_admin_hoverintent() {
    wp_enqueue_script( 
        // Script handle
        \'disable-admin-hoverintent\', 
        // Script URL
        get_bloginfo( \'stylesheet_directory\' ).\'/disableadminhi.js\', 
        // Script dependancies
        array( \'admin-bar\', \'common\' ) 
    );
}
创建自定义Javascript文件在主题文件夹中创建一个文件,并将其命名为与上面队列中的文件相匹配,在我的示例中,我使用了名称disableadminhi.js, 但如果您不想将队列放在主题文件夹中,欢迎您调整该队列和/或将其重新放置到其他位置。

的Javascriptdisableadminhi.js

jQuery(document).ready(function($){
    $(\'#wpadminbar\').find(\'li.menupop\').hover( function(){
        $(this).toggleClass(\'hover\');
    });
    // Bring menu into scope(defined by common.js in wordpress)
    var menu;
    // Copy of the function from common.js, just without hoverIntent
    $(\'li.wp-has-submenu\', menu).hover(
        function(e){
            var b, h, o, f, m = $(this).find(\'.wp-submenu\'), menutop, wintop, maxtop;

            if ( !$(document.body).hasClass(\'folded\') && $(this).hasClass(\'wp-menu-open\') )
                return;

            menutop = $(this).offset().top;
            wintop = $(window).scrollTop();
            maxtop = menutop - wintop - 30; // max = make the top of the sub almost touch admin bar

            b = menutop + m.height() + 1; // Bottom offset of the menu
            h = $(\'#wpwrap\').height(); // Height of the entire page
            o = 60 + b - h;
            f = $(window).height() + wintop - 15; // The fold

            if ( f < (b - o) )
                o = b - f;

            if ( o > maxtop )
                o = maxtop;

            if ( o > 1 )
                m.css({\'marginTop\':\'-\'+o+\'px\'});
            else if ( m.css(\'marginTop\') )
                m.css({\'marginTop\':\'\'});

            m.addClass(\'sub-open\');
        },
        function(){
            $(this).find(\'.wp-submenu\').removeClass(\'sub-open\');
        }
    );
});
享受更快的导航希望有帮助:)

结束

相关推荐

Javascript to open new window

我想在新的弹出浏览器窗口中打开一个链接。在使用JavaScript的非WordPress中,我会这样做(但我会添加一些下划线/颜色,使其看起来像一个链接)。<span onClick=\"myRef = window.open(\'/Paid_Videos/AudioGenerator01.html\',\'mywin\', \'left=20,top=20,width=500,height=500,toolbar=1,resizable=0\'); myRef.focus