2017-01-18 15 views
-1

要素のイベントを無効にすることはできません(element.onclick = nullでも可能です)ので、要素の名前を変更することにしました。
私はちょうどで試してみました:javascriptのスタイルを変更せずにクラス名を変更する

element.className = "newOne"; 

しかし、それはスタイルをクリアしているため、それはおそらく私の要素消えるが、作りました。
私の第二のアプローチは、スタイルを保存し、古い要素にそれを再コピー含ま:

TempStyles = element.styles.cssText; 
element.className = "newOne"; 
element.styles.cssText = tempStyles; 

私はそれらの非作品、.cssTextとし、それなしの両方試してみました。
!!!私の制限はIE8であり、jQUERYはありません!

+1

どのようにイベントを最初に特定の要素に追加していますか?問題を再現したり、解決策を助けたり、最初に問題を引き起こしたエラーを指摘したりできるように、十分な「* [mcve] *」コードを表示してください。 –

+1

あなたは[EventTarget.removeEventListener()](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener)を試しましたか? – Pete

+0

あなたは古いクラスを維持しようとするかもしれません。オーバーライド? element.className = "oldClass newOne";次に、!importantを使用してCSSファイル内のすべてのクラススタイルをオーバーライドします。フラグ... – Paul

答えて

-1

以前にクラスをそのHTML要素に帰属させた場合、element.className = "newOne"を実行すると、他のすべてのクラスがすべてnewOneで置き換えられます。

あなたは古いクラスとそれぞれのスタイルを維持したい場合は、あなたのHTML要素に新しいクラスを追加する必要があります。

element.className += " newOne"; 

注新しいクラス名の前に余分なスペースという。新しいクラス名を前のクラス名と区別する必要があるため、プロパティはoldClass newOneで、oldClassnewOneではなくなります。そうすれば、あなたの要素は2つのクラスになりました。

+0

thxの助けを借りていますが、私はクラス名を変更する必要がありますので、古い名前を消去する必要がありますので、それを使用することを防ぐために。 –

+0

@Arkadiusz申し訳ありませんが、私は質問を誤解しました。何を達成しようとしているのか、何を得ているのかを理解するために、いくつかのコードをhttps://jsfiddle.net/などにアップロードしていただけますか? –

関連する問題