浏览代码

新增右键菜单关闭其他操作

笔下光年 6 年之前
父节点
当前提交
2395e0f404
共有 3 个文件被更改,包括 25 次插入3 次删除
  1. 3 0
      README.md
  2. 二进制
      images/logo-sidebar.png
  3. 22 3
      js/bootstrap-multitabs/multitabs.js

+ 3 - 0
README.md

@@ -37,6 +37,9 @@
 - Bootstrap-Multitabs
 
 ### 更新记录
+2019.07.02
+增加右键关闭其他操作,替换logo
+
 2019.06.27
 表格插件页面新增treegrid使用示例
 

二进制
images/logo-sidebar.png


+ 22 - 3
js/bootstrap-multitabs/multitabs.js

@@ -482,15 +482,26 @@ if (typeof jQuery === "undefined") {
          * close others tab
          * @return self     Chain structure.
          */
-        closeOthers: function () {
+        closeOthers: function (retainTab) {
             var self = this,
-                $el = self.$element;
-            $el.navPanelList.find('li:not(.active)').find('a:not([data-type="main"])').each(function () {
+                $el = self.$element,
+                findTab;
+            
+            if (!retainTab) {
+                findTab = $el.navPanelList.find('li:not(.active)').find('a:not([data-type="main"])');
+            } else {
+                findTab = $el.navPanelList.find('a:not([data-type="main"])').filter(function(index){
+                    if (retainTab != $(this).data('index')) return this;
+                });
+            }
+          
+            findTab.each(function () {
                 var $navTab = $(this);
                 self._delStorage($navTab.attr('data-id')); //remove tab from session storage
                 self._getTabPane($navTab).remove(); //remove tab-content
                 $navTab.parent('li').remove(); //remove navtab
             });
+            retainTab && self.active($el.navPanelList.find('a[data-index="' + retainTab + '"]'));
             $el.navPanelList.css("margin-left", "0");
             return self;
         },
@@ -700,6 +711,14 @@ if (typeof jQuery === "undefined") {
                     );
                 }
                 
+                menuData.push(
+                    {text: '关闭其他', onclick: function(){
+                       self.closeOthers($navTab.data('index'));
+                       menu.hide();
+                       return false;
+                    }}
+                );
+                
                 var l = menuData.length, i;
                 
                 for (i = 0; i < l; i++) {