首先,實現“除此之外全部關閉”變灰不可用。
當只打開一個Tab選項卡時,右鍵菜單里“除此之外全部關閉”就應該變灰不可用,這樣可以提示用戶沒有除這一個選項卡沒有其他的選項卡了。程序實現很簡單了,只要獲得打開Tab選項卡的個數,如果個數為1,那么就把“除此之外全部關閉”變灰不可用就行了。
var tabcount = $('#tabs').tabs('tabs').length; //tab選項卡的個數 if (tabcount <= 1) { $('#mm-tabcloseother').attr("disabled", "disabled").css({ "cursor": "default", "opacity": "0.4" }); } else { $('#mm-tabcloseother').removeAttr("disabled").css({ "cursor": "pointer", "opacity": "1" }); }
說明:在Firfox,Google,Opera瀏覽器里,“disabled”的屬性不起作用,所以我加了一個CSS樣式,設置了一下它的透明度使它變灰。
效果圖:
圖一:除此之外全部關閉
第二,實現“當前頁右側全部關閉”變灰不可用。
當一個Tab選項卡的右側沒有選項卡的時候,這個Tab選項卡就應該變灰不可用。程序實現也不難,只要獲得最后一個Tab選項卡的標題和當前右鍵菜單所在的Tab選項卡的標題進行比較,如果一致,就把“當前頁右側全部關閉”變灰不可用。
var tabs = $('#tabs').tabs('tabs'); //獲得所有的Tab選項卡 var tabcount = tabs.length; //Tab選項卡的個數 var lasttab = tabs[tabcount - 1]; //獲得最后一個Tab選項卡 var lasttitle = lasttab.panel('options').tab.text(); //最后一個Tab選項卡的Title var currtab_title = $('#mm').data("currtab"); //當前Tab選項卡的Title if (lasttitle == currtab_title) { $('#mm-tabcloseright').attr("disabled", "disabled").css({ "cursor": "default", "opacity": "0.4" }); } else { $('#mm-tabcloseright').removeAttr("disabled").css({ "cursor": "pointer", "opacity": "1" }); }
效果圖:
圖二:當前頁右側全部關閉
第三,實現“當前頁左側全部關閉”變灰不可用。
這個跟第二個相反就行了,獲得第一個Tab選項卡的標題和當前Tab選項卡的標題進行比較。
var onetab = tabs[0]; //第一個Tab選項卡 var onetitle = onetab.panel('options').tab.text(); //第一個Tab選項卡的Title if (onetitle == currtab_title) { $('#mm-tabcloseleft').attr("disabled", "disabled").css({ "cursor": "default", "opacity": "0.4" }); } else { $('#mm-tabcloseleft').removeAttr("disabled").css({ "cursor": "pointer", "opacity": "1" }); }
最后,實現的效果如下圖
圖三:當前頁左側全部關閉
上面實現了三種情況下的變灰不可用的效果,當鼠標放到上面點擊,右鍵菜單就會消失,其實解決的辦法很簡單,希望這篇文章可以給大家帶來啟發。
新聞熱點
疑難解答