获取.slideToggle()影响的显示状态元素?
我已经尝试过is(':visible')
, is(':hidden')
和css('display')
但我无法获得元素的显示状态.slideToggle()
我错过了什么?
这是jsfiddle: http : //jsfiddle.net/djlerman/jbNg3/1/
和代码:
Test Slide Toggle .ui-icon { float:left; } $(document).ready(function () { $('span#expandList').click(function () { if ($(this).attr('class') == "ui-icon ui-icon-triangle-1-s") { $(this).attr('class', "ui-icon ui-icon-triangle-1-e"); } else { $(this).attr('class', "ui-icon ui-icon-triangle-1-s"); } $(this.parentNode).nextAll('ul').eq(0).slideToggle(); $('#debug').html($(this.parentNode).nextAll('ul').eq(0).attr('id') + ' is(:visible): ' + $(this.parentNode).nextAll('ul').eq(0).is(':visible') + '
' + $(this.parentNode).nextAll('ul').eq(0).attr('id') + ' is(:hidden): ' + $(this.parentNode).nextAll('ul').eq(0).is(':hidden') + '
' + $(this.parentNode).nextAll('ul').eq(0).attr('id') + ' .css(display): ' + $(this.parentNode).nextAll('ul').eq(0).css('display') + '
' ); }) }); Heading 1
- Item 1
- Item 2
- Item 3
Heading 2
- Item 1
- Item 2
- Item 3
Heading 3
- Item 1
- Item 2
- Item 3
在检查状态之前等待slideToggle完成。
$(this.parentNode).nextAll('ul').eq(0).slideToggle( (function () { $('#debug').html($(this.parentNode).nextAll('ul').eq(0).attr('id') + ' is(:visible): ' + $(this.parentNode).nextAll('ul').eq(0).is(':visible') + '
' + $(this.parentNode).nextAll('ul').eq(0).attr('id') + ' is(:hidden): ' + $(this.parentNode).nextAll('ul').eq(0).is(':hidden') + '
' + $(this.parentNode).nextAll('ul').eq(0).attr('id') + ' .css(display): ' + $(this.parentNode).nextAll('ul').eq(0).css('display') + '
' ); }).bind(this) );
一旦gp。 提到了“事件整理”的概念我能够找到这个post。
jQuery等待事件完成
我不知道我不知道这个概念以及它与我遇到的问题有什么关系。 谢谢你的煽动。
这是更新的jsFiddle: http : //jsfiddle.net/djlerman/jbNg3/3/
和更新的代码。
Test Slide Toggle
Heading 1
- Item 1
- Item 2
- Item 3
Heading 2
- Item 1
- Item 2
- Item 3
Heading 3
- Item 1
- Item 2
- Item 3