Fixed a bug for faceoff menus

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8960 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-08-31 02:21:56 +00:00
parent 0406e395cd
commit 8e36f8938e
2 changed files with 35 additions and 57 deletions

View file

@ -24,7 +24,7 @@
/* widgetMenu */ /* widgetMenu */
#toolbar .widgetMenu{ height:35px; margin:0; padding:0; font-size:12px; line-height:1.2; background:url(../images/bgMenu.gif) repeat-x 0 0;} #toolbar .widgetMenu{ height:35px; margin:0; padding:0; font-size:12px; line-height:1.2; background:url(../images/bgMenu.gif) repeat-x 0 0;}
#toolbar .widgetMenu ul.widgetMenuList{ margin:0; padding:0; height:35px; float:left; } #toolbar .widgetMenu ul.widgetMenuList{ margin:0; padding:0; height:35px; float:left; }
#toolbar .widgetMenu ul.widgetMenuList li ul{ display:none; position:absolute; top:40px; left:0; height:auto; padding:10px 15px; background:#595959; border:1px solid #444;} #toolbar .widgetMenu ul.widgetMenuList li ul{ display:none; position:absolute; top:35px; left:0; height:auto; padding:10px 15px; background:#595959; border:1px solid #444;}
#toolbar .widgetMenu ul.widgetMenuList li.active ul{ display:block;} #toolbar .widgetMenu ul.widgetMenuList li.active ul{ display:block;}
#toolbar .widgetMenu ul.widgetMenuList.aCenter{ margin-left:auto; margin-right:auto;} #toolbar .widgetMenu ul.widgetMenuList.aCenter{ margin-left:auto; margin-right:auto;}
#toolbar .widgetMenu ul.widgetMenuList.aLeft{ margin-right:auto;} #toolbar .widgetMenu ul.widgetMenuList.aLeft{ margin-right:auto;}

View file

@ -15,59 +15,36 @@ $.fn.toolbar = function(settings) {
hide : function(){} hide : function(){}
}, settings); }, settings);
// get elements this.find(settings.items)
var items = this.find(settings.items); .mouseover(function(){
var menus = items.find('+ ul'); var $ul = $(this).next('ul');
var menuitems = menus.find('> li'); if($ul.length) showMenu($ul, settings);
})
// hover action - submenu .find('+ul>li')
menus.mouseout( .mouseover(function(){
function(event) { var clss = 'tb-menu-item-hover';
var el = $(event.relatedTarget).parents().add(event.relatedTarget); $(this).siblings('li').removeClass(clss).end().addClass(clss);
if ( el.index(this) < 0 && el.index($(this).prev()) < 0 ) hideMenu($(this), settings); // callback
} settings.hover(createData(this));
).click( })
function(event) { .find('>button')
var item = $(event.target).parent(); .click(function(){
var data = createData(this.parentNode);
var data = createData(item); // radio button
selectItem(data);
if ( !item.is('li') ) return;
// callback
// radio button settings.click(data);
selectItem(data); })
.end()
// callback .end()
settings.click(data); .parent()
} .mouseleave(function(){
); var $ul = $(this).find('>ul:visible');
if($ul.length) hideMenu($ul,settings);
menuitems.mouseover( });
function(event){
var item = $(this);
item.parent().find('> li').removeClass('tb-menu-item-hover');
item.addClass('tb-menu-item-hover');
// callback
settings.hover(createData(item));
}
);
// hover action - button
items.hover(
function(event) {
showMenu($(this).find('+ ul'), settings);
},
function(event) {
var menu = $(this).find('+ ul');
var el = $(event.relatedTarget).parents().add(event.relatedTarget);
// hide menu
if ( el.index(menu) < 0 && el.index(this) < 0 ) hideMenu(menu, settings);
}
);
return this; return this;
} }
@ -127,12 +104,13 @@ function selectItem(data) {
} }
function createData(item) { function createData(item) {
var $item = $(item);
return { return {
element : item, element : $item,
type : item.attr('tb:type'), type : $item.attr('tb:type'),
arg : item.attr('tb:arg'), arg : $item.attr('tb:arg'),
checked : item.hasClass('tb-menu-item-selected') checked : $item.hasClass('tb-menu-item-selected')
}; };
} }
})(jQuery); })(jQuery);