我正在尝试创建几个按钮,根据单击的按钮显示一个框。我这样做是通过给每个盒子自己的类并将参数传递给函数来识别哪个盒子是目标。然后,我将此函数分配给页面上每个按钮的 onclick 属性(我知道我可能应该将事件处理程序附加到单独的文件中)。这是功能:
var show = function(boxNumber){
if($(this).hasClass('shown')){
$(this).removeClass('shown');
$(this).html('Show');
$('.box'+boxNumber).fadeOut(1000);
}
else{
$(this).html('Hide');
$(this).addClass('shown');
$('.box'+boxNumber).fadeIn(1000);
}
};
的HTML:
<span onclick="show(1)">Box 1</span>
<div class="box1"></div>
etc. for more boxes
但是这个功能不起作用。首先, this 关键字似乎没有针对按钮,因为按钮的 html 在单击时不会更改。但是,当我用按钮的类替换 this 关键字时,它可以正常工作。
其次,该功能可以很好地淡化这些框,但如果我再次单击该按钮,则不会隐藏它们。
我被卡住了,所以任何帮助将不胜感激!谢谢。