我们项目是jquery+layui组件库开发的,由于今年项目产品变动, 增加了很多跳转页面的需求,所以选择了lay-href来实现,简单讲下遇到的不能正确跳转的几个坑:
1、在跳转的js中需引入下面这段js,不然标签有lay-href属性也不能正常跳转
//标签页跳转方法
/** layuiAdmin.std-v1.0.0-beta7 LPPL License By http://www.layui.com/admin/ */
;layui.extend(
{
setter: "../static/script/layui/lib/setter",
admin: "../static/script/layui/lib/admin",
view: "../static/script/layui/lib/view"
}
).define(["setter", "admin", "laytpl"], function (a) {
var win = $(window).width();
if(win < 1200){
$(".header_nav").css( {"margin-left": "0px"});
}
var e = layui.setter,
i = layui.element,
n = layui.admin,
t = n.tabsPage,
laytpl = layui.laytpl,
d = layui.view,
l = function (a, e) {
var d, l = u("#LAY_app_tabsheader>li"),
o = a.replace(/(^http(s*):)|(\?[\s\S]*$)/g, "");
l.each(function (e) {
var i = u(this), n = i.attr("lay-id");
n === a && (d = !0, t.index = e)
}),e = e || "新标签页", d || (u(s).append(['<div class="layadmin-tabsbody-item layui-show">', '<iframe src="' + a + '" frameborder="0" class="layadmin-iframe"></iframe>', "</div>"].join("")), t.index = l.length, i.tabAdd(r, {
title: "<span>" + e + "</span>",
id: a,
attr: o
})), i.tabChange(r, a), n.tabsBodyChange(t.index, {url: a, text: e})
}, s = "#LAY_app_body", r = "layadmin-layout-tabs", u = layui.$;
u(window);
});
2、lay-href的属性要设置在点击的a标签上,其他标签好像也不能正常跳转。
3、最近遇到一个bug,是表格中每一条数据右边有多个按钮操作,每个按钮有各自的id(根据本条数据id和遍历按钮下标组成唯一的id),跳转不同的页面,之前是好的,在给表格操作列添加fix:right属性之后,点击按钮不跳转了,经过排查发现fix:right属性会重新生成一个操作列,原来唯一的按钮id多了一份,所以根据id取的按钮是隐藏的操作列按钮,但是点击的是显示的操作列按钮,所以不跳转了,解决思路是取id的方法,想办法取到显示操作列的按钮
网友评论