我想知道这两个场景中哪一个最适合在两个场景之间进行交换。让我们说暂时禁用一个按钮。
我认为第一个也是最简单的方法就是让两个html片段都已经存在。当点击时,交换一个无类,如下所示:
css:
.none{display:none;}
html init:
<div class"somecss none">but1</div>
<div class"somecss">but1</div>
html changed:
<div class"somecss none">but1</div>
<div class"somecss">but1</div>
我能想到的第二个场景是使用javascript交换整个html。我认为该代码很清楚。你只需要一个if语句,然后插入状态所需的html代码。
优点,缺点
在第一个场景中,我假设有更多DOM元素,尤其是当两个容器的html都很大时。然而,在javascrip中没什么可做的。
在第二种情况下,DOM是最小的,但是需要更多的javascript。
您认为这两种情况中哪一种最好?为什么?
也许你知道另一个我不知道的解决方案,我想听听。
谢谢你,祝你有个美好的一天!
答案 0 :(得分:2)
改变类几乎肯定会比修改DOM快得多。但是,与其他任何东西一样,如果性能很重要(并且可能不是),你真的想先尝试一下。
很高兴基于类,因为这样你就可以从Javascript中获得实际操作,并将这些内容保存在HTML和CSS中。 Javascript处理页面元素的动作语义,但HTML和CSS处理演示文稿。
答案 1 :(得分:1)
我只会在请求时添加内容,即ajax。
对于其他任何事情,修改类或其他属性(你提到禁用按钮 - 你也可以有$('#btn1')。attr('enabled',false);)可能是最好的方法。
这也是像手风琴一样的效果 - 他们隐藏内容而不是添加/删除内容。