MediaWiki:Vector.js: Różnice pomiędzy wersjami
Z High School DxD Wiki
m |
|||
Linia 7: | Linia 7: | ||
− | + | Sidebar = { | |
− | + | getItem: function(name) { | |
− | + | return $('#n-' + encodeURIComponent(name.replace(/ /g, '-')).replace(/%/g, '.')); | |
− | + | }, | |
− | + | ||
− | + | ||
− | / | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
init: function() { | init: function() { | ||
− | if (!window.wgSidebar) return; | + | if (!window.wgSidebar) |
+ | return; | ||
+ | |||
for (var menu in wgSidebar) { | for (var menu in wgSidebar) { | ||
− | var item = | + | var item = this.getItem(menu); |
− | + | ||
− | + | this.buildSubmenu(item, wgSidebar[menu]); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
+ | |||
+ | |||
}, | }, | ||
− | buildSubmenu: function( | + | |
− | var ul = | + | |
− | + | buildSubmenu: function(menu, items) | |
− | for (var i = | + | { |
− | var li = | + | var ul = $('<ul>'); |
− | if (typeof | + | |
− | var | + | menu.addClass('submenu'); |
− | li. | + | |
− | } else { | + | for (var i in items) |
− | for (var | + | { |
− | + | var item = items[i]; | |
− | li. | + | 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).on('mouseover', 'a', function() { | ||
+ | var parent = $(this).parent('li'); | ||
+ | var pos = parent.position(); | ||
+ | |||
+ | $(this).next().css({display:'block', left: parent.width()+pos.left, top: pos.top}); | ||
+ | //parent.addClass('hover'); | ||
+ | }).on('mouseout', 'a', function() { | ||
+ | |||
+ | var submenu = $(this).next('ul'); | ||
+ | if(submenu.is(':visible')) | ||
+ | { | ||
+ | submenu.css({display: 'none'}); | ||
+ | } | ||
+ | console.log(submenu.is(':visible')); | ||
+ | // | ||
+ | }); | ||
} | } | ||
− | + | ||
− | + | 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 = ''; | |
− | var | + | |
− | + | if (article.length > 7 && article.substr(0,7) == 'http://') | |
− | + | { | |
− | + | href = article; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | else | |
− | + | { | |
− | + | article = encodeURIComponent(article.replace(/ /g, '_')); | |
− | + | href = wgArticlePath.replace('$1',article); | |
− | article = | + | |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | + | ||
− | + | return '<a href="' + article + '">' + caption + '</a>'; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | } | + | } |
− | / | + | |
+ | //$(function(){Sidebar.init();}); |
Wersja z 20:44, 12 lip 2013
$(function(){ if ($.browser.mozilla) { $('#left-navigation, #right-navigation').css('top', '10.8em'); } }); 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 = this.getItem(menu); this.buildSubmenu(item, wgSidebar[menu]); } }, 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).on('mouseover', 'a', function() { var parent = $(this).parent('li'); var pos = parent.position(); $(this).next().css({display:'block', left: parent.width()+pos.left, top: pos.top}); //parent.addClass('hover'); }).on('mouseout', 'a', function() { var submenu = $(this).next('ul'); if(submenu.is(':visible')) { submenu.css({display: 'none'}); } console.log(submenu.is(':visible')); // }); } 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();});