jquery – slideToggle和:可见

前端之家收集整理的这篇文章主要介绍了jquery – slideToggle和:可见前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当使用sliderToggle方法时,可见表达式似乎没有返回除true之外的任何东西.

如果我手动使用show / hide结合:可见表达式,它将工作正常.

故障示例:

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没有显示/隐藏 – 有没有其他可以检查?

我在Firefox 3.5,IE 7,8和Chrome 4 …中尝试过相同的结果.

谢谢,
ķ

解决方法

您的第一个(非工作)代码片段将进行测试:slideToggle是中间转换期间可见(更准确地说,它在转换开始后进行测试).无论是打开还是关闭,中间转换状态将会是:可见 – 所以你总是得到真实的.

调用slideToggle之前尝试检查.is(“:visible”)

猜你在找的jQuery相关文章