01.easyuiについてtabsタブを右クリックで閉じる機能を実現

4077 ワード

js部分
            /*
            *       table     
            */
    $("#tabs").tabs({
        //          
        onContextMenu: function(e, title, index){
            //                       
            //        tab         
            e.preventDefault();
            var mm = $("#tabsmenu");
            //      
            mm.menu("show",{
                top: e.pageY,
                left: e.pageX
            }).data("tabTitle",title);
            //           
            mm.menu({
                onClick: function(item){
                    closeTab(this, item.name);
                }
            });
        }
    });

    /*
     *   tabs       
     */
    function closeTab(menu, type){
        //        
        var allTabs = $("#tabs").tabs("tabs");
        var allTabTitle = [];
        // console.log(allTabs);   dom  
        $.each(allTabs, function(i, n){
            // console.log(n);           tabs jQuery  
            //      options  
            var opt = $(n).panel("options");
            if(opt.closable){//        
                //                   
                allTabTitle.push(opt.title);
            }
        });
        //              
        var curTabTitle = $(menu).data("tabTitle");
        switch(type){
            case 1:
                //     --                  
                $("#tabs").tabs("close", curTabTitle);
                return false;
                break;
            case 2:
                //    
                for(var i = 0; i < allTabTitle.length; i++){
                    if(curTabTitle != allTabTitle[i]){
                        $("#tabs").tabs("close",allTabTitle[i]);
                    }
                }
                //              ,        
                $("#tabs").tabs("select",curTabTitle);
                break;


            case 3:
                //    
                for(var i = 0; i < allTabTitle.length; i++){
                    //       ,              
                    if(curTabTitle == allTabTitle[i]){//          ,        ,    ,    
                        //    ,                    
                        for (var j = i + 1; j < allTabTitle.length; j++) {
                            //         i+1  ,              ,     
                            $("#tabs").tabs("close",allTabTitle[j]);//       i+1
                        }
                    }
                }
                break;

            case 4:
                //    
                for(var i = 0; i < allTabTitle.length; i++){
                    //       ,              
                    if(curTabTitle == allTabTitle[i]){//          ,        ,    ,    
                        //         ,                     
                        for (var j = 0; j < i; j++) {//    0   , i-1  
                            //          ,  j   i      
                            $("#tabs").tabs("close",allTabTitle[j]);//       i+1
                        }
                    }
                }
                break;

            case 5:
                //    
                for(var i = 0; i < allTabTitle.length; i++){
                    $("#tabs").tabs("close",allTabTitle[i]);
                }
                break;
        }
    }
});

html

    
--%>
    Title