我有以下 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>
除非在任何下拉列表中选择了较大的值,否则代码工作得非常好。此时,单击时,菜单仍会正确展开/折叠,但在此过程中会快速“闪烁”,就好像整个元素正在以某种方式被重置一样。数据本身很好,但不想要的是闪烁。
奇怪的是,如果在下拉列表中选择了一个小值,则没有闪烁。When a large value is selected (say, above 30 in an age dropdown of 18-99), the flashing starts happening.
谁能告诉我为什么会这样?或者导致这种情况的 Jquery 是否有问题。
谢谢。
更新:
为此添加赏金。已经在网上尝试了一些类似的插件/解决方案,但是当默认选择大的下拉值时,它们似乎都遇到了这种“闪烁”问题。
如果有帮助,这里有一个典型的类似解决方案:http ://www.i-marco.nl/weblog/jquery-accordion-menu/index_collapsed.html# ...但是当在手风琴。
我希望有人有一个干净的解决方案,而不是需要以某种方式破解它。