在第一次点击,它按预期工作:jQuery的幻灯片切换不工作 - 已解决
- 类改变
- 和HTML内容来自改为“显示...”到“关闭。 ..”
- 内容区域与了slideDown效果扩大,
好为止。
在第二次点击,...
- 类改变
- HTML内容更改从 '关闭...' 以 '显示...'
- 内容方面的确不要按预期离开。
在第三次点击,...
- 类改变
- 的已经显示的内容与效果了slideDown重新显示HTML内容被改变。
所以一切工作,除了第二次点击,当内容应该被隐藏了。
这里是jQuery的:
-
$('.open_user_urls').live('click', function() {
$('#user_urls').slideDown('slow');
$(this).addClass('close_user_urls');
$(this).removeClass('open_user_urls');
$(this).html('Close Search History');
return false;
});
$('.close_user_urls').live('click', function() {
$('#user_urls').slideUp('slow');
$(this).addClass('open_user_urls');
$(this).removeClass('close_user_urls');
$(this).html('Show Search History');
return false;
});
下面是它作用于HTML:
<h3 class='open_user_urls'>Show Search History</h3>
<div id='user_urls'>
// an OL tag with content
</div>
而且只适用CSS:
#user_urls { display: none; }
编辑 - 我取代我的jquery代码机智h函数等效代码在下面的答案中提供,但问题仍然存在。所以这个原因必须在别处。我确实记得原来的代码,但后来停止了。我很难过。时间剥去一切一块一块地...
编辑2 - 由于错误必须在其他地方,我接受我的jquery的代码改进作为答案。谢谢。
编辑3 - 发现问题的根源。
里面的#user_urls DIV我有以下CSS的一系列白领女性的:
.url_list {float: left; width: 285px; list-style-position: outside; margin-left: 25px;}
每个OL包含20个网址列表,其目的是显示根据需要显示所有尽可能多的多列网址。
删除浮动:左;在这些OL标签上导致问题消失。
因此,对DIV中包含的内容进行浮动显示和隐藏会导致它不会隐藏。为什么会发生?
编辑4:添加#user_urls DIV内部允许隐藏操作正常工作。
这是一个Jquery的已知问题,对浮动容器和/或内容的切换反应不佳。我正在寻找方法来绕过这一点,或替换我的情况下切换使用。我会打你发布。 (看起来好像主要发生在FF和chrome中都有不同的表现方式,令人惊讶的是一旦IE看起来表现得更好) – Ar3s 2011-05-02 12:30:22