单击另一个按钮后如何隐藏和显示一个按钮?

时间:2015-11-28 01:06:17

标签: javascript jquery button buttonclick

我将在一个页面中使用两个按钮。有点像我们点击第一个按钮然后第二个按钮将出现在第一个按钮上,如果我们点击第二个按钮,那么第一个按钮将出现。而不会失去按钮的功能。

这是我的按钮代码:

<button id="button1" onclick="menu2.toggle()" class="sideviewtoggle myButton">Test 1</button>
<button id="button2" onclick="menu3.toggle()" class="sideviewtoggle myButton">Test 2</button>

例如:

测试1 是默认设置,测试2 是隐藏的,如果我们点击测试1 然后测试1 将会消失,而测试2 将会再次出现,如果我们点击测试2 ,它将会消失,而测试1 将会消失出现了。不会失去这两个按钮的onclick功能。

这是我的切换菜单功能,如果我们点击测试1按钮然后此页面: togglemenu.php 将打开,如果我们点击测试2,那么 togglemenu2.php 也会打开。

jQuery(function(){
menu2 = new sidetogglemenu({  
id: 'togglemenu2', 
position: 'right',
source: 'togglemenu.php', 
revealamt: -5
})

jQuery(function(){
menu3 = new sidetogglemenu({  
id: 'togglemenu3', 
position: 'right',
source: 'togglemenu2.php', 
revealamt: -5
})

如何制作?

提前致谢。

3 个答案:

答案 0 :(得分:1)

在不失去按钮功能的情况下,我认为您的意思是要保持菜单切换。您需要做的是定义自己的功能,在该功能中,切换菜单并执行您想要的显示/隐藏。

假设你是javascript的新手,我写这个例子很简单。

//With a function, I am able to perform multiple tasks 
function SwitchButtons(buttonId) {
  var hideBtn, showBtn, menuToggle;
  if (buttonId == 'button1') {
    menuToggle = 'menu2';
    showBtn = 'button2';
    hideBtn = 'button1';
  } else {
    menuToggle = 'menu3';
    showBtn = 'button1';
    hideBtn = 'button2';
  }
  //I don't have your menus, so this is commented out.  just uncomment for your usage
  // document.getElementById(menuToggle).toggle(); //step 1: toggle menu
  document.getElementById(hideBtn).style.display = 'none'; //step 2 :additional feature hide button
  document.getElementById(showBtn).style.display = ''; //step 3:additional feature show button


}
<button id="button1" onclick="SwitchButtons('button1');" class="sideviewtoggle myButton">Test 1</button>
<button id="button2" onclick="SwitchButtons('button2');" class="sideviewtoggle myButton" style='display:none;'>Test 2</button>

答案 1 :(得分:0)

您可能考虑的另一种可能性是,您可以使用JavaScript动态更改按钮的外观和功能,而不是隐藏/取消隐藏按钮。

&#13;
&#13;
function toggle(ev) {
  ev.target.dataset.state = ev.target.dataset.state === 'menu1' ? 'menu2' : 'menu1';
  ev.target.textContent = ev.target.textContent === 'Test 1' ? 'Test 2' : 'Test 1';
  if (ev.target.dataset.state === 'menu1') {
    // Add code to display Menu 1 here.
  } else if (ev.target.dataset.state === 'menu2') {
    // Add code to display Menu 2 here.
  }
}

document.querySelector('button').addEventListener('click', toggle);
&#13;
<button type=button name=toggleButton data-state=menu1>Test 1</button>
&#13;
&#13;
&#13;

隐藏或显示不同菜单的方式也可以遵循类似的方法。所以你可以有toggleButton函数,在函数内部调用toggleMenu函数。

答案 2 :(得分:0)

我认为如果您使用Jquery,最好创建一个隐藏的CSS类

.hidden {
  display: none;
}

并删除或添加方法.addClass() or .removeClass()

示例:

html文件:

<button id="hideMenu" class="sideviewtoggle myButton">Test 1</button>

js file

$('#hideMenu').on('click', function() {
  $('#menu-to-hide').addClass('hidden');
  //or
  $('#menu-to-show').removeClass('hidden');
});
相关问题