【发布时间】:2011-06-29 22:38:47
【问题描述】:
我正在自学 jQuery,并在尝试解决这个问题时很开心。我正在使用slideDown 和slideUp 函数让不同的<div> 在需要时出现和消失。但我的问题在于移除。我可以让不同的选定选项分别出现,但是,如果当我尝试删除<div> 中的一个时两个<div> 都显示,那么<div> 的两个快速闪烁然后都消失。当只有一个<div> 也显示时,也会发生这种情况。我单击删除链接,<div> 的两个快速闪烁然后消失。我真的不知道为什么。此代码背后的想法是允许用户根据需要添加和删除。如果选择错误,用户将能够将其删除,而之前选择的其他选择保持可见。这是我的代码:
<div class="type-select" style="width:400px;">
<select name="selectStatus">
<option selected value="Select">Select...</option>
<option id="login">Login</option>
<option id="nav">Navigation</option>
</select></div>
<div id="loginselect"><img src="http://triplemsystems.ekkosolutions.com/images/global/bg-loginPages.gif" height="47" width="162" />
<a id="remove" href="">Remove</a></div>
<div id="navselect"><img src="http://triplemsystems.ekkosolutions.com/images/global/bg-navMain.gif" height="45" width="90"/>
<a id="removenav" href="">Remove</a></div>
<script>
$("#loginselect").hide("fast");
$("select").change(function(){
if($("#login").is(":selected")){
$("#loginselect").slideDown("slow");}
});
$("#remove").click(function() {
$("#loginselect").slideUp("slow");
});
$("#navselect").hide("fast");
$("select").change(function () {
if($("#nav").is(":selected")){
$("#navselect").slideDown("slow");}
});
$("#removenav").click(function() {
$("#navselect").slideUp("slow");});
</script>
我是否走在正确的道路上?
【问题讨论】:
-
除非我误解了你的问题,否则它对我来说很好(在 Chrome 中 - 你在哪个浏览器中遇到问题?):jsfiddle.net/55NCM/1
-
@James Allardice 我正在使用 Firefox 5。
-
@James:小提琴中的代码与OP中的代码不同。
-
见@Andrew Whitaker 的回答,我认为他是对的。我在我发布的小提琴中将
javascript:void(0)添加到您的链接的href属性中,效果几乎相同。另请注意,您可以将您的$("select").change函数压缩为一个(再次,请参阅我的小提琴)。 -
@Andrew Whitaker - 是的,我在链接中添加了
javascript:void(0),甚至没有考虑到这可能是导致问题的原因!我这样做是因为当您单击带有空href的链接时,jsfiddle 会引发错误。
标签: jquery menu selector slidedown slideup