JQuery 前两次点击切换按钮没有按预期工作
JQuery toggle button first two clicks don't work as intended
我的 html 代码相当简单,我想要一个 (show/hide) 按钮,按下该按钮可向下滚动论文摘要,再次按下可将其向上滚动。我在 google 站点的 HTML 框内使用 JQuery 1.5。
html框的第一行是
然后 html:
html框的最后一部分是以下脚本:
$("#abstract1").click(function () {
$("abstract1").slideToggle("fast");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
<div><font color="#3d85c6"><b>Working Papers</b></font></div>
<div><b><font color="#0b5394"><a>Paper 1</a>
</font></b><button id="abstract1"><b>Abstract</b></button><br/> </div>
<abstract1 style="display:none">
<div style="line-height:175%;margin-bottom:1em"><font size="2"><font size="2">
blah blah blah...
</font></font></div>
</abstract1>
作为一个并不真正了解 html 的人,我对它的工作感到非常惊讶 :) 唯一的问题是在第一次点击时摘要会立即出现(不会滑动),而在第二次单击它似乎向下滚动(在它已经可见之后)。然后它完美地工作,向下和向上滚动...
我做错了什么?
非常感谢!!
您的HTML无效。您似乎有无效的标签,例如 <abstract1>
并且倾向于加倍使用标签。在下面的代码片段中,我已将您的 <abstract1>
标签更改为 <div>
标签,并将 abstract1
的 class 应用于它,从而允许您定位 div class 通过在 javascript 代码中使用选择器 .abstract1
。
我还 'cleaned' 稍微改进了您的代码,以便它使用更合适的 HTML 标记(并删除了不需要的标记)。
有关工作示例,请参阅下面的代码片段:
$("#abstract1").click(function () {
$(".abstract1").slideToggle("fast");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<font color="#3d85c6"><b>Working Papers</b></font>
</div>
<div>
<b><font color="#0b5394"><a>Paper 1</a> </font></b>
<button id="abstract1"><b>Abstract</b></button><br />
</div>
<!-- Here is where you need to change the <abstract1> tag to this div: -->
<div class="abstract1" style="display:none">
<span style="line-height:175%;margin-bottom:1em">
<font size="2">blah blah blah... </font>
</span>
</div>
我的 html 代码相当简单,我想要一个 (show/hide) 按钮,按下该按钮可向下滚动论文摘要,再次按下可将其向上滚动。我在 google 站点的 HTML 框内使用 JQuery 1.5。 html框的第一行是
然后 html:
html框的最后一部分是以下脚本:
$("#abstract1").click(function () {
$("abstract1").slideToggle("fast");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>
<div><font color="#3d85c6"><b>Working Papers</b></font></div>
<div><b><font color="#0b5394"><a>Paper 1</a>
</font></b><button id="abstract1"><b>Abstract</b></button><br/> </div>
<abstract1 style="display:none">
<div style="line-height:175%;margin-bottom:1em"><font size="2"><font size="2">
blah blah blah...
</font></font></div>
</abstract1>
作为一个并不真正了解 html 的人,我对它的工作感到非常惊讶 :) 唯一的问题是在第一次点击时摘要会立即出现(不会滑动),而在第二次单击它似乎向下滚动(在它已经可见之后)。然后它完美地工作,向下和向上滚动...
我做错了什么?
非常感谢!!
您的HTML无效。您似乎有无效的标签,例如 <abstract1>
并且倾向于加倍使用标签。在下面的代码片段中,我已将您的 <abstract1>
标签更改为 <div>
标签,并将 abstract1
的 class 应用于它,从而允许您定位 div class 通过在 javascript 代码中使用选择器 .abstract1
。
我还 'cleaned' 稍微改进了您的代码,以便它使用更合适的 HTML 标记(并删除了不需要的标记)。
有关工作示例,请参阅下面的代码片段:
$("#abstract1").click(function () {
$(".abstract1").slideToggle("fast");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<font color="#3d85c6"><b>Working Papers</b></font>
</div>
<div>
<b><font color="#0b5394"><a>Paper 1</a> </font></b>
<button id="abstract1"><b>Abstract</b></button><br />
</div>
<!-- Here is where you need to change the <abstract1> tag to this div: -->
<div class="abstract1" style="display:none">
<span style="line-height:175%;margin-bottom:1em">
<font size="2">blah blah blah... </font>
</span>
</div>