При использовании метода sliderToggle
выражение :visible
, кажется, никогда не возвращает ничего, кроме true.
Если я вручную использую 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
не делает show
/ hide
- есть что-то еще, что я могу проверить?
Я пробовал в Firefox 3.5, IE 7, 8 и Chrome 4 ... все с одинаковыми результатами.
Спасибо,
K