| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 | 
							
- $(function () {
 
-     //计算元素集合的总宽度
 
-     function calSumWidth(elements) {
 
-         var width = 0;
 
-         $(elements).each(function () {
 
-             width += $(this).outerWidth(true);
 
-         });
 
-         return width;
 
-     }
 
-     //滚动到指定选项卡
 
-     function scrollToTab(element) {
 
-         var marginLeftVal = calSumWidth($(element).prevAll()), marginRightVal = calSumWidth($(element).nextAll());
 
-         // 可视区域非tab宽度
 
-         var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
 
-         //可视区域tab宽度
 
-         var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
 
-         //实际滚动宽度
 
-         var scrollVal = 0;
 
-         if ($(".page-tabs-content").outerWidth() < visibleWidth) {
 
-             scrollVal = 0;
 
-         } else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
 
-             if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
 
-                 scrollVal = marginLeftVal;
 
-                 var tabElement = element;
 
-                 while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content").outerWidth() - visibleWidth)) {
 
-                     scrollVal -= $(tabElement).prev().outerWidth();
 
-                     tabElement = $(tabElement).prev();
 
-                 }
 
-             }
 
-         } else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
 
-             scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
 
-         }
 
-         $('.page-tabs-content').animate({
 
-             marginLeft: 0 - scrollVal + 'px'
 
-         }, "fast");
 
-     }
 
-     //查看左侧隐藏的选项卡
 
-     function scrollTabLeft() {
 
-         var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
 
-         // 可视区域非tab宽度
 
-         var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
 
-         //可视区域tab宽度
 
-         var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
 
-         //实际滚动宽度
 
-         var scrollVal = 0;
 
-         if ($(".page-tabs-content").width() < visibleWidth) {
 
-             return false;
 
-         } else {
 
-             var tabElement = $(".J_menuTab:first");
 
-             var offsetVal = 0;
 
-             while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) {//找到离当前tab最近的元素
 
-                 offsetVal += $(tabElement).outerWidth(true);
 
-                 tabElement = $(tabElement).next();
 
-             }
 
-             offsetVal = 0;
 
-             if (calSumWidth($(tabElement).prevAll()) > visibleWidth) {
 
-                 while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
 
-                     offsetVal += $(tabElement).outerWidth(true);
 
-                     tabElement = $(tabElement).prev();
 
-                 }
 
-                 scrollVal = calSumWidth($(tabElement).prevAll());
 
-             }
 
-         }
 
-         $('.page-tabs-content').animate({
 
-             marginLeft: 0 - scrollVal + 'px'
 
-         }, "fast");
 
-     }
 
-     //查看右侧隐藏的选项卡
 
-     function scrollTabRight() {
 
-         var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
 
-         // 可视区域非tab宽度
 
-         var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
 
-         //可视区域tab宽度
 
-         var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
 
-         //实际滚动宽度
 
-         var scrollVal = 0;
 
-         if ($(".page-tabs-content").width() < visibleWidth) {
 
-             return false;
 
-         } else {
 
-             var tabElement = $(".J_menuTab:first");
 
-             var offsetVal = 0;
 
-             while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) {//找到离当前tab最近的元素
 
-                 offsetVal += $(tabElement).outerWidth(true);
 
-                 tabElement = $(tabElement).next();
 
-             }
 
-             offsetVal = 0;
 
-             while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
 
-                 offsetVal += $(tabElement).outerWidth(true);
 
-                 tabElement = $(tabElement).next();
 
-             }
 
-             scrollVal = calSumWidth($(tabElement).prevAll());
 
-             if (scrollVal > 0) {
 
-                 $('.page-tabs-content').animate({
 
-                     marginLeft: 0 - scrollVal + 'px'
 
-                 }, "fast");
 
-             }
 
-         }
 
-     }
 
-     //通过遍历给菜单项加上data-index属性
 
-     $(".J_menuItem").each(function (index) {
 
-         if (!$(this).attr('data-index')) {
 
-             $(this).attr('data-index', index);
 
-         }
 
-     });
 
-     function menuItem() {
 
-         // 获取标识数据
 
-         var dataUrl = $(this).attr('href'),
 
-             dataIndex = $(this).data('index'),
 
-             menuName = $.trim($(this).text()),
 
-             flag = true;
 
-         if (dataUrl == undefined || $.trim(dataUrl).length == 0)return false;
 
-         // 选项卡菜单已存在
 
-         $('.J_menuTab').each(function () {
 
-             if ($(this).data('id') == dataUrl) {
 
-                 if (!$(this).hasClass('active')) {
 
-                     $(this).addClass('active').siblings('.J_menuTab').removeClass('active');
 
-                     scrollToTab(this);
 
-                     // 显示tab对应的内容区
 
-                     $('.J_mainContent .J_iframe').each(function () {
 
-                         if ($(this).data('id') == dataUrl) {
 
-                             $(this).show().siblings('.J_iframe').hide();
 
-                             return false;
 
-                         }
 
-                     });
 
-                 }
 
-                 flag = false;
 
-                 return false;
 
-             }
 
-         });
 
-         // 选项卡菜单不存在
 
-         if (flag) {
 
-             var str = '<a href="javascript:;" class="active J_menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
 
-             $('.J_menuTab').removeClass('active');
 
-             // 添加选项卡对应的iframe
 
-             var str1 = '<iframe class="J_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
 
-             $('.J_mainContent').find('iframe.J_iframe').hide().parents('.J_mainContent').append(str1);
 
-             //显示loading提示
 
- //            var loading = layer.load();
 
- //
 
- //            $('.J_mainContent iframe:visible').load(function () {
 
- //                //iframe加载完成后隐藏loading提示
 
- //                layer.close(loading);
 
- //            });
 
-             // 添加选项卡
 
-             $('.J_menuTabs .page-tabs-content').append(str);
 
-             scrollToTab($('.J_menuTab.active'));
 
-         }
 
-         return false;
 
-     }
 
-     $('.J_menuItem').on('click', menuItem);
 
-     // 关闭选项卡菜单
 
-     function closeTab() {
 
-         var closeTabId = $(this).parents('.J_menuTab').data('id');
 
-         var currentWidth = $(this).parents('.J_menuTab').width();
 
-         // 当前元素处于活动状态
 
-         if ($(this).parents('.J_menuTab').hasClass('active')) {
 
-             // 当前元素后面有同辈元素,使后面的一个元素处于活动状态
 
-             if ($(this).parents('.J_menuTab').next('.J_menuTab').size()) {
 
-                 var activeId = $(this).parents('.J_menuTab').next('.J_menuTab:eq(0)').data('id');
 
-                 $(this).parents('.J_menuTab').next('.J_menuTab:eq(0)').addClass('active');
 
-                 $('.J_mainContent .J_iframe').each(function () {
 
-                     if ($(this).data('id') == activeId) {
 
-                         $(this).show().siblings('.J_iframe').hide();
 
-                         return false;
 
-                     }
 
-                 });
 
-                 var marginLeftVal = parseInt($('.page-tabs-content').css('margin-left'));
 
-                 if (marginLeftVal < 0) {
 
-                     $('.page-tabs-content').animate({
 
-                         marginLeft: (marginLeftVal + currentWidth) + 'px'
 
-                     }, "fast");
 
-                 }
 
-                 //  移除当前选项卡
 
-                 $(this).parents('.J_menuTab').remove();
 
-                 // 移除tab对应的内容区
 
-                 $('.J_mainContent .J_iframe').each(function () {
 
-                     if ($(this).data('id') == closeTabId) {
 
-                         $(this).remove();
 
-                         return false;
 
-                     }
 
-                 });
 
-             }
 
-             // 当前元素后面没有同辈元素,使当前元素的上一个元素处于活动状态
 
-             if ($(this).parents('.J_menuTab').prev('.J_menuTab').size()) {
 
-                 var activeId = $(this).parents('.J_menuTab').prev('.J_menuTab:last').data('id');
 
-                 $(this).parents('.J_menuTab').prev('.J_menuTab:last').addClass('active');
 
-                 $('.J_mainContent .J_iframe').each(function () {
 
-                     if ($(this).data('id') == activeId) {
 
-                         $(this).show().siblings('.J_iframe').hide();
 
-                         return false;
 
-                     }
 
-                 });
 
-                 //  移除当前选项卡
 
-                 $(this).parents('.J_menuTab').remove();
 
-                 // 移除tab对应的内容区
 
-                 $('.J_mainContent .J_iframe').each(function () {
 
-                     if ($(this).data('id') == closeTabId) {
 
-                         $(this).remove();
 
-                         return false;
 
-                     }
 
-                 });
 
-             }
 
-         }
 
-         // 当前元素不处于活动状态
 
-         else {
 
-             //  移除当前选项卡
 
-             $(this).parents('.J_menuTab').remove();
 
-             // 移除相应tab对应的内容区
 
-             $('.J_mainContent .J_iframe').each(function () {
 
-                 if ($(this).data('id') == closeTabId) {
 
-                     $(this).remove();
 
-                     return false;
 
-                 }
 
-             });
 
-             scrollToTab($('.J_menuTab.active'));
 
-         }
 
-         return false;
 
-     }
 
-     $('.J_menuTabs').on('click', '.J_menuTab i', closeTab);
 
- 	
 
- 	// 关闭当前选项卡
 
-     function tabCloseCurrent() {
 
-     	$('.page-tabs-content').find('.active i').trigger("click");
 
-     }
 
-     //关闭其他选项卡
 
-     function closeOtherTabs(){
 
-         $('.page-tabs-content').children("[data-id]").not(":first").not(".active").each(function () {
 
-             $('.J_iframe[data-id="' + $(this).data('id') + '"]').remove();
 
-             $(this).remove();
 
-         });
 
-         $('.page-tabs-content').css("margin-left", "0");
 
-     }
 
-     $('.J_tabCloseOther').on('click', closeOtherTabs);
 
-     //滚动到已激活的选项卡
 
-     function showActiveTab(){
 
-         scrollToTab($('.J_menuTab.active'));
 
-     }
 
-     $('.J_tabShowActive').on('click', showActiveTab);
 
-     // 点击选项卡菜单
 
-     function activeTab() {
 
-         if (!$(this).hasClass('active')) {
 
-             var currentId = $(this).data('id');
 
-             // 显示tab对应的内容区
 
-             $('.J_mainContent .J_iframe').each(function () {
 
-                 if ($(this).data('id') == currentId) {
 
-                     $(this).show().siblings('.J_iframe').hide();
 
-                     return false;
 
-                 }
 
-             });
 
-             $(this).addClass('active').siblings('.J_menuTab').removeClass('active');
 
-             scrollToTab(this);
 
-         }
 
-     }
 
-     $('.J_menuTabs').on('click', '.J_menuTab', activeTab);
 
-     //刷新iframe
 
-     function refreshTab() {
 
-         var currentId = $('.page-tabs-content').find('.active').attr('data-id');
 
-     	var target = $('.J_iframe[data-id="' + currentId + '"]');
 
-         var url = target.attr('src');
 
-         target.attr('src', url).ready();
 
-     }
 
-     $('.J_menuTabs').on('dblclick', '.J_menuTab', refreshTab);
 
- 	
 
- 	// 页签刷新按钮
 
-     $('.tabReload').on('click', refreshTab);
 
-     // 左移按扭
 
-     $('.J_tabLeft').on('click', scrollTabLeft);
 
-     // 右移按扭
 
-     $('.J_tabRight').on('click', scrollTabRight);
 
- 	
 
- 	// 关闭当前
 
- 	$('.tabCloseCurrent').on('click', tabCloseCurrent);
 
-     // 关闭全部
 
-     $('.J_tabCloseAll').on('click', function () {
 
-         $('.page-tabs-content').children("[data-id]").not(":first").each(function () {
 
-             $('.J_iframe[data-id="' + $(this).data('id') + '"]').remove();
 
-             $(this).remove();
 
-         });
 
-         $('.page-tabs-content').children("[data-id]:first").each(function () {
 
-             $('.J_iframe[data-id="' + $(this).data('id') + '"]').show();
 
-             $(this).addClass("active");
 
-         });
 
-         $('.page-tabs-content').css("margin-left", "0");
 
-     });
 
-     
 
-     // 右键菜单实现
 
-     $.contextMenu({
 
-         selector: ".J_menuTab",
 
-         trigger: 'right',
 
-         autoHide: true,
 
-         items: {
 
-             "close_current": {
 
-                 name: "关闭当前",
 
-                 callback: function(key, opt) {
 
-                 	opt.$trigger.find('i').trigger("click");
 
-                 }
 
-             },
 
-             "close_other": {
 
-                 name: "关闭其他",
 
-                 callback: function(key, opt) {
 
-                 	$(".J_tabCloseOther").trigger("click");
 
-                 }
 
-             },
 
-             "close_all": {
 
-                 name: "全部关闭",
 
-                 callback: function(key, opt) {
 
- 					$('.J_tabCloseAll').trigger("click");
 
-                 }
 
-             },
 
-         }
 
-     })
 
- });
 
 
  |