最近在項目上用layui框架后台iframe版,遇到的一些問題分享:
1.項目的左側菜單點擊對應的子菜單能自動刷新問題。
2.除了在左側有菜單,還需要在右側需要一個菜單(跳轉到新頁面),並且能夠伸縮自適應。
基於以上兩個點:先簡單的畫個草圖(場景)
直接用layui的模板是不符合項目需求的。現在先回答第一個問題的處理:
之前在網上看到對於左側菜單刷新問題都是不符合:
eg:layui的底層js,一般就是admin.js里面找到tabChange方法去處理,試了沒找到,直接跳過。百度上可以自行查找很多,這里就不一 一說明。以下只是針對自己在項目上遇到的問題處理方案
用到的layui.js版本:layui-v2.4.3 。
1.對於刷新問題,可以在對應的官方文檔中找到:利用element.on()可以監聽導航事件,在callback中處理自己相關的業務既可。
2.需要在右側添加一個菜單,開始的思路:直接給主體內容和右側菜單賦予一定比例的百分比,通過js去控制切換,嘗試后左右兩側點擊操作后不能自適應屏幕,不行在換一思路,不服就干。繼續干,,,,
查找后還是無果,咋辦呢,項目需要,不另想辦法處理是不行的啦。。。。。。
最后只能是出大招了。。。。。。。!!!!!!!!!
請看官方的demo是這樣的
我稍作修改,就可以自適應啦
在右側菜單你可能需要做一個伸縮的功能,可能會遇到一個坑:layui 中點擊切換伸縮,有時候會無效的問題。
無效問題:
//使用此點擊事件失效 $(".類名").on('click', function() { alert('響應點擊事件'); });
//將指定的事件綁定在document上,而新產生的元素如果符合指定的元素,那就觸發此事件
$(document).on('click', '.類名',function () {
點擊后需要做什么,添加class或者其他
if(條件){ // 判斷了是否展開了?還是收起了?
// 存在進行的操作
....
} else {
// 不存在該干嘛
.....
}
});
右側菜單的其他就不貼出,貼出點擊例子:
$(document).on('click', '.shrinkage',function () {
$(".right-nav").toggleClass("lvc-close");
$(".right-side-menu").toggleClass("small-ul");
if($("#lvc-nav").hasClass('lvc-close')){
$(".layui-layout-admin .layui-body ").css("right","50px");
$(".right-nav").css("width","49px");
} else {
$(".layui-layout-admin .layui-body ").css("right","150px");
$(".right-nav").css("width","115px");
}
});
第二點的問題處理不僅實現了左右兩側點擊后能自適應,跟之前的效果完美貼合,不需要過多代碼處理,哈哈哈哈哈哈哈哈哈哈
@
@
@
@
@
@
@
@
寫作不易,記錄遇到點滴,有問題可以一起交流,歡迎留言,,,,,不足之處,提出意見,共同進步!!!!!!