一个按钮工作,其他不,相同的脚本
one button works , others dont , same script
我明白了
<div id="container">
<img src="images/4.png" />
<ul class="menu">
<li id="menu-0"> <p class="menuP" id="button0"> </p></li>
<li id="menu-1"> <p class="menuP" id="button1"> <a id="abutton1" onclick="animatedown1()"> </a></p></li>
<li id="menu-2"> <p class="menuP" id="button2"> <a id="abutton2" onclick="animatedown2()"> </a></p></li>
<li id="menu-3"> <p class="menuP" id="button3"> <a id="abutton3" onclick="animatedown3()"> </a></p></li>
<li id="menu-4"> <p class="menuP" id="button4"> <a id="abutton4" onclick="animatedown4()"> </a></p></li>
<li id="menu-5"> <p class="menuP" id="button5"> </p></li>
</ul>
</div>
<div id="bgRepeat1">
<div class="textContainer" id="textContainer1"> <!-- only one of these is visible at any given time -->
<p> container 1 </p>
</div>
<div class="textContainer" id="textContainer2">
<p> container 2 </p>
</div>
<div class="textContainer" id="textContainer3">
<p> container 3 </p>
</div>
<div class="textContainer" id="textContainer4">
<p> container 4 </p>
</div>
</div>
这是我为
找到的javascriptfunction animatedown1()
{
alert('start1');
$("#textContainer1").animate({
opacity:'0'
},800, function(){
alert('end1');});
}
在第一个例子中有效,但在其他
中不起作用function animatedown2()
{
alert('start2');
$("#textContainer2").animate({
opacity:'0'
},800, function(){
alert('end2');});
}
我认为没有必要张贴其他2 (animatedown3和4)
ok so…其基本思想是:我有4个按钮,它们是列出来的(button0和button5没有任何作用,它们只是列出来的)例如,单击button1时,应该显示textcontainer1,并隐藏
之前显示的任何内容。基本上是一个动画菜单,没有链接到其他页面,都在一个页面中。
现在它只工作,如果我点击button1,它隐藏textcontainer1(我知道它应该显示它,这只是为了看看按钮是否工作),这很好。问题在这里:当我点击button2 3 4时什么都没有发生,我在这些按钮中实现了alert()所以我可以看到脚本是否启动但它没有启动,它只对button1
有效所有4个函数几乎相同,但如果我发现,如果我在animatedown1()部分$("#textContainer1")与$("#textContainer2")它适用于textContainer2 ..所以这让我认为,出于某种原因,只有第一个函数有效。
任何帮助都将是非常感激的。
PS:我试着用
做这个$("#menu-1").click(function() {
$("#textContainer1").animate({
opacity:'0'
},800, function(){
alert('wtf');});
});
但在这里我不能让它注册我的点击菜单-1(也尝试与ID的button2和abutton2)任何带有。click或onclick功能的解决方案都将受到赞赏。
http://www.byforthewind.hit.bg/编辑:我发现什么是错的…当我检查我的javascript时,我看到在所有4个函数的下方,还有另外3个(除了第1个)具有相同的名称但为空。这就是为什么只有第一个函数有效,其他3个被页面底部的空函数覆盖。
我认为解决这个问题的最好方法是重用相同的函数。检查这里的代码,告诉我它是否解决了你的问题。
<div id="container">
<ul class="menu">
<li id="menu-0"><p class="menuP" id="button0"></p></li>
<li id="menu-1"><p class="menuP" id="button1"><a id="abutton1" onclick="animateContainer($('#textContainer1 p'))">container 1 </a></p></li>
<li id="menu-2"><p class="menuP" id="button2"><a id="abutton2" onclick="animateContainer($('#textContainer2 p'))">container 2 </a></p></li>
<li id="menu-3"><p class="menuP" id="button3"><a id="abutton3" onclick="animateContainer($('#textContainer3 p'))">container 3 </a></p></li>
<li id="menu-4"><p class="menuP" id="button4"><a id="abutton4" onclick="animateContainer($('#textContainer4 p'))">container 4 </a></p></li>
<li id="menu-5"><p class="menuP" id="button5"></p></li>
</ul>
</div>
<div id="bgRepeat1">
<div class="textContainer" id="textContainer1"> <!-- only one of these is visible at any given time -->
<p> container 1 </p>
</div>
<div class="textContainer" id="textContainer2">
<p> container 2 </p>
</div>
<div class="textContainer" id="textContainer3">
<p> container 3 </p>
</div>
<div class="textContainer" id="textContainer4">
<p> container 4 </p>
</div>
</div>
<script type="text/javascript">
function animateContainer(container)
{
container.animate( { opacity :0 }, 800, function() { console.log("ended") } );
}
</script>
这是如何工作的?
好吧,而不是复制粘贴相同的函数一遍又一遍,我写了函数一次,我传递我想要动画的容器。
我没有写function animatedown1()
和function animatedown2()
等等,而是写了一个函数,签名为function animateContainer(container)
-正如你所看到的,我将我想要动画的元素传递给函数。这样,我可以一次又一次地为我想要的任何数量的容器重用相同的函数。
- 网页上失败的javascript会导致所有其他脚本失败
- Selenium异步脚本在自己的线程中阻塞其他脚本
- 如何测试jQuery和某些其他脚本是否已加载
- 长轮询脚本会停止所有其他脚本
- 在ASP中调用HTML以调用其他脚本
- 如果其他脚本'装载顺序未知
- jquery破坏了其他脚本
- 在加载其他脚本之前,在 Jasmine 中加载外部脚本
- 如何在罗勒.js中包含其他脚本
- Chrome 扩展程序引用/调用内容脚本中的其他脚本函数
- 异步加载的脚本是否会影响其他脚本的加载时间
- 具有 asyc 属性的脚本仍会阻止其他脚本执行
- 需要检测网页中哪个<脚本>块与哪些其他<脚本>块交互
- 正在运行的脚本标记是否会阻止其他脚本标记的下载
- JavaScript 加载其他脚本 - 调用函数 - 未定义
- 如何在不禁用其他脚本的情况下将 Javascript 添加到组件中
- Javascript setTimeout 会停止其他脚本执行吗?
- JS:隐藏其他脚本的变量
- 从jquery函数中获取值并在其他脚本中使用它
- 安装其他脚本后,Javascript Slider无法在网站上工作