JQuery菜单插件使用默认选项扩展RTL自动支持

JQuery菜单插件使用默认选项扩展RTL自动支持,jquery,Jquery,这是我上一个问题的后续问题。我几乎创建了一个插件来自动检测页面方向,并设置默认选项来强制菜单插件使用RTL,并将子菜单图标更改为也使用RTL。我创造了这个 我的问题-我用来检测的代码将在每次菜单调用时执行,就像我在一些页面上看到的大约20个菜单一样,这是否会占用大量时间,这是否可以在页面加载时完成/检查一次。这段代码通常可以作为插件进行优化 body { text-align: right; } *{ direction: rtl } a, a:link, a:visited

这是我上一个问题的后续问题。我几乎创建了一个插件来自动检测页面方向,并设置默认选项来强制菜单插件使用RTL,并将子菜单图标更改为也使用RTL。我创造了这个

我的问题-我用来检测的代码将在每次菜单调用时执行,就像我在一些页面上看到的大约20个菜单一样,这是否会占用大量时间,这是否可以在页面加载时完成/检查一次。这段代码通常可以作为插件进行优化

body {
    text-align: right;
}

*{
    direction: rtl
}

a, a:link, a:visited{
    font-size: 16px;
    font-family: Arial,Verdana,Tahoma,Times,Sans-Serif;
    text-decoration: none;
    font-weight: normal;
}

.ui-menu {
    float: right;
}
.ui-menu .ui-menu-icon {
  float:left;  
}
<ul id="menu" style="width: 200px;">
    <li><a href="#">العربية</a>
        <ul id="submenu">
            <li><a href="#">حسابات</a>
                <ul id="subsubmenu">
                    <li><a href="#">حسابات</a></li>
                    <li><a href="#">ادارة</a></li>    
                    <li><a href="#">رصيد</a></li>
                </ul> 

            </li>
            <li><a href="#">ادارة</a></li>    
                <li><a href="#">رصيد</a></li>
        </ul> 
    </li>
    <li><a href="#">تسجيل</a></li>    
<li><a href="#">اتصال</a></li>
</ul>    

(function($){
    var menu_orig = $.fn.menu;
    // ...before overwriting the jQuery extension point
    $.fn.menu = function(options) { 
        var isRTL = isRTL || (($("body").css("direction").toLowerCase() == "rtl")? 1 : 0);
        if (isRTL) {
            if (typeof options === "object") {
                options = $.extend(true, options, {
                    icons: {submenu: "ui-icon-circle-triangle-w"},
                    position: {my: "right top", at: "left top"}
                });
            }
        }

        var args = Array.prototype.slice.call(arguments, 0);
        var ret = menu_orig.apply(this, args);
        return ret;
    };
    //----------------------------------------
})(jQuery);

$('#menu').menu({
});
正文{
文本对齐:右对齐;
}
*{
方向:rtl
}
a、 a:链接,a:已访问{
字体大小:16px;
字体系列:Arial、Verdana、Tahoma、Times、Sans Serif;
文字装饰:无;
字体大小:正常;
}
.ui菜单{
浮动:对;
}
.ui菜单.ui菜单图标{
浮动:左;
}
(函数($){ var menu_orig=$.fn.menu; //…在覆盖jQuery扩展点之前 $.fn.menu=函数(选项){ var isRTL=isRTL | |($(“body”).css(“direction”).toLowerCase()=“rtl”)?1:0; 国际单项体育联合会(isRTL){ 如果(选项类型==“对象”){ 选项=$.extend(true,选项{ 图标:{子菜单:“ui-icon-circle-triangle-w”}, 位置:{my:“右上”,at:“左上”} }); } } var args=Array.prototype.slice.call(参数,0); var ret=菜单初始应用(此参数为args); 返回ret; }; //---------------------------------------- })(jQuery); $(“#菜单”)。菜单({ });
我为jquery菜单和菜单栏设计了一些代码,如果有人将其作为正式插件,效果会更好

function supportRTL() {
    //----------------------------------------
    // menu plugin to auto detect RTL and set menus for RTL
    // http://api.jquery.com/Types/#Context.2C_Call_and_Apply
    //----------------------------------------
    var menu_orig = $.fn.menu;
    $.fn.menu = function(options) { 
        if (typeof options === "object") {
            options = $.extend(true, {
                icons: {submenu: "ui-icon-carat-1-w"},
                position: {my: "right top", at: "left top"}
            }, options);
        }
        var args = Array.prototype.slice.call(arguments, 0);
        var ret = menu_orig.apply(this, args);
        return ret;
    };
    //----------------------------------------
    // menubar plugin to auto detect RTL and set menus for RTL
    var menubar_orig = $.fn.menubar;
    $.fn.menubar = function(options) {  
        if (typeof options === "object") {
            options = $.extend(true, {
                position: {my: "right top", at: "right bottom"} // RTL support
            }, options);
        }
        var args = Array.prototype.slice.call(arguments, 0);
        var ret = menubar_orig.apply(this, args);
        return ret;
    };
}


$(document).ready(function () {
    var is_rtl = ($("body").css("direction").toLowerCase() == "rtl")? 1 : 0;
    $.fn.isRTL = function() {return is_rtl;}
    if ($.fn.isRTL()){
        supportRTL();
    }
});

“这可以完成/检查吗”
?到底是什么<代码>“在每次菜单调用中”?什么电话?您已经扩展了原始插件。上面的代码有什么问题?我对jquery和JS有一点经验,代码
var-isRTL=isRTL | | |(($(“body”).css(“direction”).toLowerCase()=“rtl”)?1:0)
用于检查RTL/方向,这会使页面变慢吗?我还要求专家将代码重写/格式化为专业代码,因为我只是在没有经验的情况下调整了另一个代码。