私は大きな古典的な1.11.2から最新のjQuery 3.0にアップグレードしています。jQueryの表示/非表示は、DOMに接続されていない要素では機能しません(3.0で見つかった変更点)
いくつかの複雑なウィジェットをインスタンス化すると、最初はcss(display none)を使っていくつかの要素を隠すようになりました。次に、show/hideを使用して要素を表示します。
しかし、ウィジェットがDOMにアタッチされる前に、show/hideの呼び出しが行われる可能性があります。要素がアタッチされていないのに1.11.2でうまく動作するのに使用されていましたが、3.0.0では機能しません。
デモ:
3.0.0:古いバージョン要素で
.tabCompositeSearchWidget-ClearButton { /* Clear button is initially hidden */ display: none; } var e = document.createElement('div'); $(e).addClass('tabCompositeSearchWidget-ClearButton'); $(e).text('blah'); $(e).show(); $('#root').append($(e)); alert($(e).is(":visible"));
false
を言うだろう:何がここで最高の修正をすることができ ?古い方法でjquery.jsファイルを手動で変更するには? (私は本当にそれをしたくない)
更新:固定ワンオフケースは簡単です。しかし、潜在的にそのような呼び出しの数十を持っており、それらのすべてを修正する&が巨大な努力を必要とし、効果的でないことを見つける。ここで
この変更はリリースノートに記載されています。あなたは既にそれを修正するには、 –
_ "しかし、このような呼び出しが数十回ある可能性があり、それらをすべて検索して修正するには膨大な労力が必要です" _努力が必要となります、しかし、pr明らかに「巨大な」努力ではない。 _ "有効ではありません。" _効果的ではないのはなぜでしょうか?もう1つの選択肢は、予想される結果を返すjQueryのバージョンを使用することです。バージョン3.0を使用する目的は何ですか? SOはまだバージョン1.7.1を使用しています – guest271314
@ KevinBあなたは正解です、悪いです。 3.0アップグレードガイド – vmg