У меня есть следующий кусок Jquery:
$("#collapse-menu > li > a").click(function() {
$(this).toggleClass("expanded").toggleClass("collapsed").find("+ ul").slideToggle("medium");
});
Что он в основном делает, так это разворачивает или сворачивает меню вложенных «списков», которые содержат выпадающие списки (упрощенный пример):
<ul id="collapse-menu">
<li><a class="expanded">Basic Details</a>
<ul>
<li>
<select> .... </select>
</li>
<li>
<select> .... </select>
</li>
Код работает абсолютно нормально, КРОМЕ, когда в любом из выпадающих списков выбрано большое значение. В этот момент при нажатии меню все равно будет правильно расширяться / сворачиваться, но при этом быстро «мигать», как будто весь элемент каким-то образом сбрасывается. С самими данными все в порядке, но перепрошивка нежелательна.
Странно то, что если в раскрывающемся списке выбрано небольшое значение, мигание не происходит. Когда выбрано большое значение (скажем, больше 30 в раскрывающемся списке 18–99 лет), начинается мигание.
Может кто-нибудь сказать мне, почему это происходит? Или что-то не так в Jquery, которое является причиной этого.
Спасибо.
UPDATE:
Добавление щедрости к этому. Попробовал несколько подобных плагинов / решений в сети, но все они, похоже, страдают от этой "мигающей" проблемы, когда по умолчанию выбраны большие выпадающие значения.
Если это поможет, вот типичное аналогичное решение: http://www.i -marco.nl / weblog / jquery-accordion-menu / index_collapsed.html # ... но оно страдает от той же проблемы, когда Раскрытия добавляются в аккордеоне.
Надеюсь, у кого-то есть чистое решение, вместо того, чтобы как-то его взломать.