mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-26 06:39:56 +09:00
navigatpr widget fix
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5844 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f14d588445
commit
ed300def8a
1 changed files with 26 additions and 177 deletions
|
|
@ -13,18 +13,10 @@ function WidgetNavigator(menu_srl){
|
|||
var node_srl = jQuery(this).attr('node_srl');
|
||||
if(self.menu_srl && node_srl && widget_navigator && widget_navigator[self.menu_srl]){
|
||||
|
||||
// 생성되지 않을때만 생성
|
||||
if(jQuery('ul[node_srl='+node_srl+']').size() ==0){
|
||||
var wn = widget_navigator[self.menu_srl].drawMenu(node_srl);
|
||||
if(wn) wn.appendTo(jQuery('html>body'));
|
||||
jQuery('ul[node_srl='+node_srl+']').remove();
|
||||
var wn = widget_navigator[self.menu_srl].drawMenu(node_srl);
|
||||
if(wn) wn.appendTo(jQuery('html>body'));
|
||||
|
||||
// 이미 있다면 show
|
||||
}else{
|
||||
jQuery('a',this).show();
|
||||
jQuery('ul[node_srl='+node_srl+']').show();
|
||||
jQuery('ul[node_srl='+node_srl+']').children('li').show();
|
||||
jQuery('ul[node_srl='+node_srl+']').children('li').children('a').show();
|
||||
}
|
||||
}
|
||||
}
|
||||
).mouseout(
|
||||
|
|
@ -74,7 +66,7 @@ WidgetNavigator.prototype.drawMenu = function(parent_srl){
|
|||
var parent_offset = jQuery('li.node_'+parent_srl).offset();
|
||||
h.css({
|
||||
top : parent_offset.top + jQuery('li.node_'+parent_srl).height()-2,
|
||||
left : parent_offset.left
|
||||
left : parent_offset.left
|
||||
})
|
||||
|
||||
// 2차메뉴
|
||||
|
|
@ -98,181 +90,39 @@ WidgetNavigator.prototype.drawMenu = function(parent_srl){
|
|||
var t = jQuery(this);
|
||||
|
||||
var m = t.attr('text');
|
||||
if(!m) return;
|
||||
var u ='#';
|
||||
if(t.attr('url')){
|
||||
if(/^http\:\/\//.test(t.attr('url'))){
|
||||
u = t.attr('url');
|
||||
}else{
|
||||
u = request_uri.setQuery('mid',t.attr('url'));
|
||||
}
|
||||
}
|
||||
m = '<a href="' + u + '"'+(t.attr('open_window')=='Y'?' target="blank"':'')+'>'+m+'</a>';
|
||||
|
||||
|
||||
jQuery('<li class="node_'+ t.attr('node_srl') +( i==0?' ':'')+'" node_srl="'+ t.attr('node_srl')+'">')
|
||||
.html(m)
|
||||
.mouseover(function(){
|
||||
jQuery(this).toggleClass('active','');
|
||||
var node_srl = jQuery(this).attr('node_srl');
|
||||
|
||||
if(self.menu_srl && node_srl && widget_navigator && widget_navigator[self.menu_srl]){
|
||||
if(jQuery('ul[node_srl='+node_srl+']').size() ==0){
|
||||
var wn = widget_navigator[self.menu_srl].drawMenu(node_srl);
|
||||
// if(wn) wn.appendTo(jQuery('li[node_srl='+node_srl+']'));
|
||||
}else{
|
||||
jQuery('ul[node_srl='+node_srl+']').show();
|
||||
}
|
||||
if(m){
|
||||
var u ='#';
|
||||
if(t.attr('url')){
|
||||
if(/^http\:\/\//.test(t.attr('url'))){
|
||||
u = t.attr('url');
|
||||
}else{
|
||||
u = request_uri.setQuery('mid',t.attr('url'));
|
||||
}
|
||||
})
|
||||
.mouseout(function(){
|
||||
var node_srl = jQuery(this).attr('node_srl');
|
||||
jQuery('ul[node_srl='+node_srl+']').hide();
|
||||
})
|
||||
.appendTo(h);
|
||||
});
|
||||
}
|
||||
m = '<a href="' + u + '"'+(t.attr('open_window')=='Y'?' target="blank"':'')+'>'+m+'</a>';
|
||||
|
||||
|
||||
return h;
|
||||
}
|
||||
|
||||
|
||||
WidgetNavigator.prototype.load = function(xml){
|
||||
this.xml = xml;
|
||||
var self = this;
|
||||
jQuery.get(xml,{},function(data){
|
||||
// for ie
|
||||
self.data = jQuery(data.replace(/\<(\/|)node/g,'<$1span').replace(/\<(\/|)root/g,'<$1div'));
|
||||
},'text');
|
||||
}
|
||||
|
||||
WidgetNavigator.prototype.getMenu = function(parent_srl){
|
||||
var m = this.data;
|
||||
return m.find("[parent_srl="+parent_srl+"]");
|
||||
}
|
||||
|
||||
WidgetNavigator.prototype.getDepth = function(node_srl){
|
||||
var m = this.data.find('span[node_srl='+node_srl+']');
|
||||
return m.parents("span").size();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
function WidgetNavigator(menu_srl){
|
||||
var self = this;
|
||||
self.menu_srl = menu_srl;
|
||||
|
||||
// 1depth 메뉴를 먼저
|
||||
jQuery(function(){
|
||||
jQuery('ul.widget_navigator_'+menu_srl+' > li')
|
||||
.mouseover(
|
||||
function(e){
|
||||
jQuery(this).parent().children('li').removeClass('active');
|
||||
jQuery(this).addClass('active');
|
||||
|
||||
jQuery('<li class="node_'+ t.attr('node_srl') +( i==0?' ':'')+'" node_srl="'+ t.attr('node_srl')+'">')
|
||||
.html(m)
|
||||
.mouseover(function(){
|
||||
jQuery(this).toggleClass('active','');
|
||||
var node_srl = jQuery(this).attr('node_srl');
|
||||
if(self.menu_srl && node_srl && widget_navigator && widget_navigator[self.menu_srl]){
|
||||
|
||||
// 생성되지 않을때만 생성
|
||||
if(self.menu_srl && node_srl && widget_navigator && widget_navigator[self.menu_srl]){
|
||||
if(jQuery('ul[node_srl='+node_srl+']').size() ==0){
|
||||
var wn = widget_navigator[self.menu_srl].drawMenu(node_srl);
|
||||
if(wn) wn.appendTo(jQuery('html>body'));
|
||||
|
||||
// 이미 있다면 show
|
||||
// if(wn) wn.appendTo(jQuery('li[node_srl='+node_srl+']'));
|
||||
}else{
|
||||
jQuery('ul[node_srl='+node_srl+']').show();
|
||||
}
|
||||
}
|
||||
}
|
||||
).mouseout(
|
||||
function(e){
|
||||
jQuery(this).parent().children('li.active').removeClass('active');
|
||||
jQuery(this).parent().children('li._active').addClass('active');
|
||||
|
||||
})
|
||||
.mouseout(function(){
|
||||
var node_srl = jQuery(this).attr('node_srl');
|
||||
// jQuery('ul[node_srl='+node_srl+']').hide();
|
||||
}
|
||||
);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
WidgetNavigator.prototype.drawMenu = function(parent_srl){
|
||||
var self = this;
|
||||
var c = this.getMenu(parent_srl);
|
||||
|
||||
// 하위메뉴가 없다
|
||||
if(c.size()==0) return '';
|
||||
|
||||
var depth = this.getDepth(parent_srl);
|
||||
|
||||
// 하위 메뉴를 만든다
|
||||
var h = jQuery('<ul class="widgetNavSub '+hrMenuColorset+'" node_srl="'+parent_srl+'">')
|
||||
|
||||
.css({ position:'absolute' })
|
||||
|
||||
.mouseover(function(){
|
||||
|
||||
jQuery('li.[node_srl='+parent_srl+']').parent().show();
|
||||
jQuery(this).show();
|
||||
|
||||
})
|
||||
.mouseout(function(){
|
||||
// jQuery(this).hide();
|
||||
});
|
||||
|
||||
// 1차메뉴
|
||||
if(depth <1){
|
||||
var parent_offset = jQuery('li.node_'+parent_srl).offset();
|
||||
h.css({
|
||||
top : parent_offset.top + jQuery('li.node_'+parent_srl).height(),
|
||||
left : parent_offset.left
|
||||
})
|
||||
|
||||
// 2차메뉴
|
||||
}else{
|
||||
h.css({
|
||||
left: 40
|
||||
});
|
||||
}
|
||||
|
||||
h.mouseover(function(e){
|
||||
jQuery('li[node_srl='+parent_srl+']').mouseover();
|
||||
})
|
||||
.mouseout(function(e){
|
||||
jQuery('li[node_srl='+parent_srl+']').mouseout();
|
||||
});
|
||||
|
||||
|
||||
c.each(function(i){
|
||||
var t = jQuery(this);
|
||||
|
||||
var m = t.attr('text');
|
||||
m = '<a href="' + (t.attr('url')?t.attr('url'):'#') + '"'+(t.attr('open_window')=='Y'?' target="blank"':'')+'>'+m+'</a>';
|
||||
|
||||
|
||||
jQuery('<li class="node_'+ t.attr('node_srl') +( i==0?' ':'')+'" node_srl="'+ t.attr('node_srl')+'">')
|
||||
.html(m)
|
||||
.mouseover(function(){
|
||||
jQuery(this).toggleClass('active','');
|
||||
var node_srl = jQuery(this).attr('node_srl');
|
||||
|
||||
if(self.menu_srl && node_srl && widget_navigator && widget_navigator[self.menu_srl]){
|
||||
if(jQuery('ul[node_srl='+node_srl+']').size() ==0){
|
||||
var wn = widget_navigator[self.menu_srl].drawMenu(node_srl);
|
||||
if(wn) wn.appendTo(jQuery('li[node_srl='+node_srl+']'));
|
||||
}else{
|
||||
jQuery('ul[node_srl='+node_srl+']').show();
|
||||
}
|
||||
}
|
||||
})
|
||||
.mouseout(function(){
|
||||
var node_srl = jQuery(this).attr('node_srl');
|
||||
jQuery('ul[node_srl='+node_srl+']').hide();
|
||||
})
|
||||
.appendTo(h);
|
||||
jQuery('ul[node_srl='+node_srl+']').hide();
|
||||
})
|
||||
.appendTo(h);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
|
@ -297,5 +147,4 @@ WidgetNavigator.prototype.getMenu = function(parent_srl){
|
|||
WidgetNavigator.prototype.getDepth = function(node_srl){
|
||||
var m = this.data.find('span[node_srl='+node_srl+']');
|
||||
return m.parents("span").size();
|
||||
}
|
||||
*/
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue