【发布时间】:2018-07-29 12:02:30
【问题描述】:
说明:我创建了两个按钮和另外两个元素(div 和 section)。 当我点击按钮 1 时,div 元素将以背景色 HotPink 出现和/如果此时我重新点击按钮 1,div 元素将消失。
我还为按钮 2 编写了一个函数,这样当我单击按钮 2 时,节元素将显示为背景色深绿色,此时当我再次单击按钮 2 时,节元素将消失。
我应该提到,如果我点击正文的空白区域( (document).click(event) ),div 和 section 元素都会消失。
问题:当我单击按钮 1 时我应该编写什么函数来显示 div 元素,然后当我单击按钮 2 或网页上的任何其他元素时隐藏它?
Demo
注意:我重复了这个问题,因为我不想使用任何方法,例如:
$(".button1").click(function(event){
event.stopPropagation();
if($(".div").css("display") == "none"){
$(".div").css("display","block");
$(".section").css("display","none");
}else{
$(".div").css("display","none");
}
});
$(".button2").click(function(event){
event.stopPropagation();
if($(".section").css("display") == "none"){
$(".section").css("display","block");
$(".div").css("display","none");
}else{
$(".section").css("display","none");
}
});
如果你帮个忙,建议一个更好的方法,而不是在不同的事件(函数)下复制一行具有不同类名的代码,那就更好了。
我的代码: HTML:
<button class="button1">
Show Div Element
</button>
<div class="div">
I am Div Element
</div>
<br><br>
<button class="button2">
Show Section Element
</button>
<section class="section">
I am Section Element
</section>
JQuery:
$(function(){
$(".button1").click(function(event){
event.stopPropagation();
if($(".div").css("display") == "none"){
$(".div").css("display","block");
}else{
$(".div").css("display","none");
}
});
$(".button2").click(function(event){
event.stopPropagation();
if($(".section").css("display") == "none"){
$(".section").css("display","block");
}else{
$(".section").css("display","none");
}
});
$(document).click(function(){
$(".div").css("display","none");
$(".section").css("display","none");
});
});
【问题讨论】:
标签: javascript jquery html css