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で試したことがありますが、すべて同じ結果です。
おかげで、 K
もちろんです!ありがとうございました、今すぐmuppetのように感じる - var isVisible =!notes.is( ":visible"); slideToggleの前に私は答えが必要です。ありがとうございました! – Kieron
これは少し直感的ですが、理にかなっています。 jQueryオブジェクトの内部スライドアップステータスのみがある場合は... –