2012-11-07 67 views
0

我有多个菜单(形式)与可见性隐藏,我打开它们与图标上的clickevent。这一切运作良好,当我打开另一个菜单时,前菜单仍处于打开状态时,它们都会保持可见状态。所以,我想要一个新菜单打开时隐藏菜单。jQuery的切换,新的菜单打开时,关闭

HTML

<span id='settingsIcon' class='settingsIcon'>S 
    <div class='settingForms'> 
     <div class='formMoveButton'> 
      <span class='settingsMakePublicIcon'>w</span> 
      <form action='' method='post' class='moveForm'> 
       <input class='settingsMakePublicButton' type='submit' value='Make public  ' name='$this->move'/> 
      </form> 
     </div> 
    </div> 
</span> 

jQuery的

$(".settingsIcon").click(function(event) { 
    event.stopPropagation(); 

    if($(document).find(".settingForms").is(':visible') < 1) { 
     HandleSettingsWindow($($(this).children()[0])); 
    } else { 
    } 
}); 

HandleSettingsWindow = function (el) { 
    $(document).click(function() { // Close the menu when clicked outside it 
     el.hide(); 
     document.oncontextmenu = function() { return true; }; 
    }); 
    el.toggle(); 
} 

回答

0

试试这个请:http://jsfiddle.net/RttT5/

注意if($(document).find(".settingForms").is(':visible'))

希望休息适合您的需求:)

代码

$(".settingsIcon").click(function(event) { 
    event.stopPropagation(); 

    if($(document).find(".settingForms").is(':visible')) { 
     HandleSettingsWindow($($(this).children()[0])); 
    } else { 

    } 
}); 

HandleSettingsWindow = function (el) { 
    $(document).click(function() { // Close the menu when clicked outside it 
     el.hide(); 
     document.oncontextmenu = function() { return true; }; 
    }); 
    el.toggle(); 
}​ 
+0

我不尽管下一步该怎么做,但我真的很关注你,这就是我正在努力的。如果它是页面上的任何可见菜单,我想在打开新菜单时关闭它们。 – oskarno

0

问题是这一行

if($(document).find(".settingForms").is(':visible') < 1) 

没有必要为< 1,你可以用

if($(document).find(".settingForms").is(':visible')) 
相关问题