2

私はかなり興味深い問題があります。 イメージを拡大/縮小できるプラグインを作成しています。私は3つのボタンを持っています:閉じる( 'ウィンドウ'を閉じる)、ズームイン、ズームアウト。 ボタンのズームイン/ズームアウトも無効になっています。ズームの最小/最大量に達するとアクティブになります。IE7とクラスを削除するsetAttribute()

ズームする画像を開くと、ズームアウトボタンが有効になり、ズームインボタンが無効になります(開いたときに最大値が設定されているため)。最初にズームアウトボタンをクリックしたとき、ズームインボタンは無効なクラスを取り除くはずです。 Safari、Chrome、Firefox 3.6/4/5、IE8では正常に動作しますが、IE7では正常に動作しません。

ズームインボタンにはIDとクラスがあり、強制的に要素から特定のクラスを削除する必要があります。まず、removeClass()を使用しましたが、機能しませんでした。それからsetAttribute()を使用します。これはIE7以外のすべてのブラウザで機能します。

これは例です。 ズームするために画像を開くと、ズームアウトボタンにID = "ズームボタンイン"と5つのクラスがあります:ズームアイコン、ズームアイコン小さい、ズームボタンイン、ズームボタン無効、zoom-button-disabled-in。 そして2つの '無効化された'クラスを削除したいと思います。したがって、私はこれを使用します:

var elementZoomButtonIn = document.getElementById("zoom-button-in"); 
elementZoomButtonIn.setAttribute("class", "zoom-icon zoom-icon-small zoom-button-in"); 

無効なクラスを挿入する前にクラスを設定しようとしましたが、動作しませんでした。

この方法はIE7で動作しますか? ( - :

はみんな、ありがとう

+0

://reference.sitepoint.com/javascript/Element/getAttribute – stuartdotnet

答えて

6

setAttribute()getAttribute()は、一般的にIE 7で壊れ以前の(およびそれ以降のバージョンで互換性モード)の代わりに、要素のclassNameプロパティを使用しています

elementZoomButtonIn.className = "zoom-icon zoom-icon-small zoom-button-in"; 

!。 IEでsetAttribute()getAttribute()が壊れていなくても、代わりに同等のDOMプロパティを使用する方が一般に簡単で信頼性が高いです。

+0

私はgetAttribute()メソッドを持っています - それが理由です:私は(私はそれらの男、方法によって、それらの人を嫌って) setAttributeそれはうまくいかなかった。しかし、私はjQueryのattr()を使用して、今はすべてOKです! ティム、本当にありがとう!あなたは私の人生を救った! :-) 素敵な一日を! –