当使用sliderToggle
方法时,:visible
表达式永远不会返回除true之外的任何内容。slideToggle和:visible
如果我手动使用show
/hide
与:visible
表达式一起工作就好了。
:
例jQuery(".fileNode .nodeExpander").click(function() {
var notes = jQuery(this).parent().siblings(".fileNotes");
notes.slideToggle ("fast");
var isVisible = notes.is(":visible"); // Always returns true...
// Do stuff based on visibility...
});
工作:
jQuery(".fileNode .nodeExpander").click(function() {
var notes = jQuery(this).parent().siblings(".fileNotes");
var isVisible = notes.is(":visible");
if (isVisible)
notes.hide("fast");
else
notes.show("fast");
// Do stuff based on visibility...
});
一些HTML代码:
<ul>
<li class="fileNode">
<img src="<%= Url.Content ("~/Images/Collapse.png") %>" alt="<%= UIResources.CollpaseAltText %>" class="nodeExpander" />
</li>
<li class="fileLink">
<%= Html.ActionLink (file.Name, "Details", new { id = file.FileId }) %>
</li>
<li class="fileNotes">
<%= file.Description %>
</li>
</ul>
我假设slideToggle
不做a show
/hide
- 有什么我可以检查?
我试过Firefox 3.5,IE 7,8和Chrome 4 ......都有相同的结果。
感谢, ķ
当然!谢谢,现在感觉像是一个混淆 - 通过调用var isVisible =!notes.is(“:visible”);在slideToggle之前,我得到所需的答案。谢谢! – Kieron 2009-08-28 08:21:43
这有点违反直觉,但非常有意义。如果我们只有jQuery对象的内部滑动状态... – 2017-05-22 06:31:45