最近在开发公司项目的时候发现,点击按钮弹个窗,在弹窗页面里面还要弹窗,弹三次,最后一个弹窗小得可怜。于是,进行了优化处理,新增了一个方法,点击按钮新增一个tab的菜单选项卡来展示原本需要弹窗展示的html。
实现这个效果有两种方式
class属性新增openTabMenu,data-id属性是菜单ID,用于菜单自动跳转,data-url属性是需要展示的静态文件url,一般是一个html相对路径的url,data-title是tab菜单的名称,具体实现源码的位置是public\static\component\laytp\module\laytp.js
的openTabMenu
方法
/**
* 点击按钮打开新的tab menu
* 所有拥有openTabMenu类名的节点,点击后都会打开新的tab menu
* data-id 菜单ID,用于菜单自动选中
* data-url 必填,需要展示的静态文件url
* data-title tab菜单的名称
*/
openTabMenu: function(){
$(document).off("click", ".openTabMenu").on("click", ".openTabMenu", function () {
if (parent.config.tab.muiltTab) {
parent.bodyTab.addTabOnly({
id: $(this).data("id"),
title: $(this).data("title"),
url: $(this).data("url"),
icon: "",
close: true
}, 300);
} else {
parent.bodyFrame.changePage($(this).data("url"), "", true);
}
});
},
调用方式:
<button class="openTabMenu"
data-id="菜单ID"
data-url="需要展示的静态文件url"
data-title="菜单名称"></button>
public\static\component\laytp\module\facade.js
公用函数库新增了openTabMenu
方法
调用方式:
facade.openTabMenu({
id: "菜单ID",
url: "需要展示的静态文件url",
title: "tab菜单的名称"
});
菜单ID参数很重要,要保证全局唯一,允许使用英文+数字,不能使用中文