编辑:问题变成了如何将大规模 CSS 更改优化为 700 个或更多 div。我将在下面留下旧问题来描述我的原始方法。
我有以下 jQuery,但它的行为不像我预期的那样。大约有 700 个具有 gr 类的 div,因此隐藏它们需要相当长的时间。我正在尝试做:
- 单击“显示/隐藏发音”时,立即将该文本更改为“工作中”
- 等到所有 'div.gr' 都被隐藏/显示
“工作”回到“显示/隐藏发音”
$(document).ready(function () { $('#togglePron').click(function() { $('#togglePron').html("Working..."); $('div.gr').toggle(); $('#togglePron').html("Show/hide Pronunciation"); }); }); ... ... <div class="pronlink" id="togglePron">Show/hide P</div> <div class="gr">hai</div><div class="zi">A</div> <div class="gr">nao</div><div class="zi">B</div> etc.
感谢 Mike Lentini ,这个问题有一个 jsfiddle。
我观察到的行为是“显示/隐藏 P”需要很长时间才能更改,然后它会短暂更改为“工作”,然后又回到“显示/隐藏”。那么 jQuery 是否将 html() 和 .toggle() 捆绑在一起,而不是先运行 html()?
这似乎是特定于浏览器的,因为在 Opera 中它可以满足我的需求。在 IE 7 和 Chrome 18 中,行为如我所述。有没有办法让我在 Chrome 中想要的行为发生?还是做我所描述的更好的方法?