MediaWiki:Vector.js: Różnice pomiędzy wersjami
Z High School DxD Wiki
Linia 22: | Linia 22: | ||
Sidebar.buildSubmenu(item, wgSidebar[menu]); | Sidebar.buildSubmenu(item, wgSidebar[menu]); | ||
+ | |||
+ | $(menu).on('mouseenter', 'li', function() { | ||
+ | var el = $(this); | ||
+ | var pos = el.position(); | ||
+ | |||
+ | $(this).next().css({display:'block', left: el.width()+pos.left, top: pos.top}); | ||
+ | //parent.addClass('hover'); | ||
+ | }).on('mouseleave', 'li', function() { | ||
+ | |||
+ | var submenu = $(this).children('ul'); | ||
+ | if(submenu.is(':visible')) | ||
+ | { | ||
+ | submenu.css({display: 'none'}); | ||
+ | } | ||
+ | }); | ||
} | } | ||
Linia 55: | Linia 70: | ||
} | } | ||
} else continue; | } else continue; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
Wersja z 21:59, 12 lip 2013
$(function(){ if ($.browser.mozilla) { $('#left-navigation, #right-navigation').css('top', '10.8em'); } }); window.wgSidebar = (window.wgSidebar||{}); importScript('MediaWiki:Vector.js/Sidebar.js'); Sidebar = { getItem: function(name) { return $('#n-' + encodeURIComponent(name.replace(/ /g, '-')).replace(/%/g, '.')); }, init: function() { if (!window.wgSidebar) return; for (var menu in wgSidebar) { var item = Sidebar.getItem(menu); Sidebar.buildSubmenu(item, wgSidebar[menu]); $(menu).on('mouseenter', 'li', function() { var el = $(this); var pos = el.position(); $(this).next().css({display:'block', left: el.width()+pos.left, top: pos.top}); //parent.addClass('hover'); }).on('mouseleave', 'li', function() { var submenu = $(this).children('ul'); if(submenu.is(':visible')) { submenu.css({display: 'none'}); } }); } }, buildSubmenu: function(menu, items) { var ul = $('<ul>'); menu.addClass('submenu'); for (var i in items) { var item = items[i]; var li = $('<li>'); if (typeof item === 'string') { var link = this.getLink(item); li.append(link); ul.append(li); } else if(typeof item === 'object') { for (var j in item) { var link = this.getLink(j); li.append(link); ul.append(li); this.buildSubmenu(li, item[j]); } } else continue; } menu.append(ul); }, getLink: function(txt, has_submenu) { var pos = txt.indexOf('|'); var article = ''; var caption = ''; if (pos > 0) { article = txt.substr(0, pos); caption = txt.substr(pos + 1); } else { article = txt; caption = txt; } var href = ''; if (article.length > 7 && article.substr(0,7) == 'http://') { href = article; } else { article = encodeURIComponent(article.replace(/ /g, '_')); href = wgArticlePath.replace('$1',article); } return '<a href="' + article + '">' + caption + '</a>'; } } //$(function(){Sidebar.init();});