2013-04-08 55 views
3

现在用下面的脚本来显示按钮/隐藏DIV点击如何在show/hide切换中只使用“show”?

function showHide(divID){ 
if (document.getElementById(divID).style.display == "none") { 
    $('#'+divID).fadeIn(3000); 

} else { 
    $('#'+divID).fadeOut(3000); 
} 
} 

这是我的HTML:

<button onClick="showHide('hideDiv',this.id)" type="button">English</button> 
<button onClick="showHide('hideDiv',this.id)" type="button">Math</button> 
<button onClick="showHide('hideDiv',this.id)" type="button">French</button> 

,并使用一个单一的div来显示按钮上点击

内容
<div id="hideDiv" style="display:none;"> 
    <p>A painting workshop in the early Renaissance probably resembled</p> 
</div> 

当我点击数学英语后,内容将隐藏,再次点击一次后,内容再次显示。 但是,我想在用户点击任何按钮时显示内容,我想在此隐藏“隐藏”属性,以便用户无论点击哪个按钮都能看到内容。

这里是小提琴链接http://jsfiddle.net/ytyAd/

+3

我不明白。什么时候div应该隐藏,什么时候应该可见? – Aioros 2013-04-08 13:03:32

+0

用你的问题创建一个jsFiddle,因为你的内联显示风格:无,应该在页面加载时默认隐藏你的内容。但是你声称它不是。所以继续,并设置一个jsFiddle与您的问题。 – blackhawk 2013-04-08 13:05:35

+0

内容应该是可见的,无论用户点击哪个按钮(英语/法语/数学) – user1165077 2013-04-08 13:09:38

回答

0

你需要这样的事?

Live Demo Here

HTML

<button id="engbutton" class="button" type="button">English</button> 
<button id="mathbutton" class="button" type="button">Math</button> 
<button id="frenchbutton" class="button" type="button">French</button> 
<div id="engbuttonDiv" style="display:none;" class="ContentDiv"> 
    <p>This is English Div</p> 
</div> 
<div id="mathbuttonDiv" style="display:none;" class="ContentDiv"> 
    <p>This is Maths Div</p> 
</div> 
<div id="frenchbuttonDiv" style="display:none;" class="ContentDiv"> 
    <p>This is French Div</p> 
</div> 

CSS

.ContentDiv 
{ 
    height:50px; 
    width:200px; 
    background:green; 
} 

jQuery的

$(".button").click(function(){ 
     $(".ContentDiv").hide(); 
     var divid = $(this).attr("id") + "Div"; 
     if($("#"+divid).css('display') == 'none') 
     { 
      $("#"+divid).fadeIn(3000); 
     } 
     else 
     { 
      $("#"+divid).fadeOut(3000); 
     } 
    }); 
+0

关闭,但是当我点击数学按钮,包含英语的div应该被隐藏......或者,英语内容应该被数学替换为同一个div – user1165077 2013-04-08 13:18:39

+0

请查看更新的答案 – 2013-04-08 13:19:38

1

这就是我认为你正在寻找... http://jsfiddle.net/ytyAd/10/

JS把这个在$(文件)。就绪():

​​

HTML:

<button class="showHide" type="button">English</button> 
<button class="showHide" type="button">Math</button> 
<button class="showHide" type="button">French</button> 

<div id="hideDiv"> 
    <p id="English" style="display:none;">english stuff</p> 
    <p id="Math" style="display:none;">math stuff</p> 
    <p id="French" style="display:none;">french stuff</p> 
</div> 

当然你可以玩它(不同的动画,回调等),以适应你的环境

0

HTML:

<div class="buttons"> 
<button id="engbutton" class="button" type="button">English</button> 
<button id="mathbutton" class="button" type="button">Math</button> 
<button id="frenchbutton" class="button" type="button">French</button> 
</div> 
<div class="contents">  
<div id="engbuttonDiv" style="display:none;" class="ContentDiv"> 
    <p>This is English Div</p> 
</div> 
<div id="mathbuttonDiv" style="display:none;" class="ContentDiv"> 
    <p>This is Maths Div</p> 
</div> 
<div id="frenchbuttonDiv" style="display:none;" class="ContentDiv"> 
    <p>This is French Div</p> 
</div> 
</div> 

JS:

$('.button').on('click', function(){ 
     $('.contents').find('div').hide(); 
     var getMessageDiv = '#'+$(this).attr('id')+"Div"; 
     if ($(getMessageDiv).is(':visible')) 
     $(getMessageDiv).fadeOut(); 
     else 
     $(getMessageDiv).fadeIn(); 
    }) 

LIVE Demo