0


0

jQueryでクラスを交換するかコンテンツを交換する方が良いですか?

これらの2つのシナリオのうち、2つのシナリオを入れ替えるのに最適なのはどれかを疑問に思いました。 一時的にボタンを無効にするとしましょう。

最初の最も簡単な方法は、両方のhtmlを既に配置することです。 クリックすると、次のように、なしのクラスがスワップされます。

css:
.none{display:none;}

html init:
but1
but1

html changed:
but1
but1

私が考えることができる2番目のシナリオは、javascriptを使用してhtml全体を交換することです。 そのコードは明確だと思います。 ifステートメントがあり、状態に必要なhtmlコードを挿入するだけです。

長所短所

最初のシナリオでは、特に両方のコンテナのhtmlが大きい場合に、より多くのDOM要素があります。 ただし、javascripで行うことはあまりありません。

2番目のシナリオでは、DOMは最小限ですが、もう少しJavaScriptが必要です。

これらの2つのシナリオのうち、どれが最良であると思いますか?

そして、あなたは私が知らなかった別の解決策を知っているかもしれません、それを聞きたいです。

ありがとう、素晴らしい一日を!

2 Answer


2


クラスの変更は、ほぼ確実にDOMの変更よりもはるかに高速になります。 ただし、他の何かと同じように、パフォーマンスが重要な場合(そしておそらくそうでない場合)は、まず最初に試してみたいと思います。

Javascriptから実際の操作を取得し、その内容をHTMLとCSSに保持できるため、クラスに基づいて物事を行うのは良いことです。 Javascriptはページ要素のアクションセマンティクスを処理しますが、HTMLとCSSはプレゼンテーションを処理します。


1


リクエストされているコンテンツ、つまりajaxのみを追加します。

それ以外の場合は、クラスや他の属性(ボタンを無効にすることを述べた-$( '#btn1')。attr( 'enabled'、false);を使用することもできます)がおそらく最善の方法です。

それはまた、アコーディオンのような効果がどのように働くかです-彼らはそれを追加/削除するのではなくコンテンツを隠します。