【发布时间】:2023-10-09 00:55:01
【问题描述】:
我对 jQuery / javascript 比较陌生,但我遇到了看起来很简单的问题,但我看不出有什么问题。对不起,如果这最终很简单,但我已经搜索了负载但没有结束。
我试图让各种 div 淡入或淡出,具体取决于它们是否“可见”。当单击“下一步”箭头时,这些 div 实际上是我想要前进的“页面”。
这是我的 jQuery:
$(document).ready(function(){
$("#page1 > div").hide();
$("#page2 > div").hide();
$("#page3 > div").hide();
$("#page1 > div").fadeIn(800);
$("#NextArrow").click(function(){
if($("#page1").is(":visible")){
$("#page1 > div").fadeOut(800);
$("#page2 > div").fadeIn(800);
}
else if($("#page2").is(":visible")){
$("#page2 > div").fadeOut(800);
$("#page3 > div").fadeIn(800);
}
else {
alert("no page");
}
})
})
这里是html:
<table id="MainTable" width="765" border="0" align="center">
<tr>
<td align="left" valign="top" style="min-height:400px; padding-left:10px; padding-top:10px">
<div id="page1" style="position:absolute">
<div id="p1Title">Introduction</div>
<p></p>
<div id="p1Detail">....detail.....</div>
</div>
<div id="page2" style="position:absolute">
<div id="p2Title">Introduction - continued</div>
<p></p>
<div id="p2Detail">....detail.....</div>
</div>
<div id="page3" style="position:absolute">
<div id="p3Title">Members</div>
<p></p>
<div id="p3Detail">....detail.....</div>
</div>
</td>
</tr>
<tr>
<td align="right">
<div id="NextArrow"></div>
</td>
</tr>
</table>
这是“NextArrow”的css:
#NextArrow
{
width:120px;
height:34px;
background-image:url('NextArrow.gif');
}
#NextArrow:hover
{
background-image:url('NextArrowHover.gif');
}
所以这就是问题所在。当我单击“NextArrow”div 时,它会按预期淡出“page1”div 并淡入“page2”div。但是,当我再次单击它时,什么也没有发生,甚至没有收到“无页面”警报。
【问题讨论】:
-
根据代码的工作方式,可能是一个简单的情况,您只需单击#nextarrow 即可快速播放动画,并在完成最后一个动画之前触发
-
这不是问题,我创建了一个小提琴:jsfiddle.net/CKkpC
-
查看文档,它实际上声明了
Elements with visibility: hidden or opacity: 0 are considered visible。所以你所有的 div 一开始都被认为是可见的 -
您使用的是哪个浏览器?如果 Chrome 或 Firefox 在单击时在检查器/firebug 中触发任何错误?
-
将警报放入其他两个代码块。我敢打赌以上是正确的,并且您每次都遇到代码块 #1。
标签: javascript jquery