[注意: 誰かが提起した同様の質問について、プロジェクトの github ページにこの回答を投稿しました。この回答が修正された場合は、そこを確認してください。- https://github.com/ducksboard/gridster.js/issues/74]
過去数日間、同様の問題で過ごしました-IE8のサポートのみが必要でしたが(IE7では機能するようですが)。問題は、コードがページを正しく更新しているのに、IE がマウスの移動中にデータ行とデータ列の変更を取得/評価しないことでした。上記のソリューションから、modernizr と同様のライブラリを使用して、最後に IE のみの「propertychange」イベントにバインドしようとするまで、いくつかのことを試しましたが、成功しませんでした。
マウスがダウン/移動している間、CSS 属性を使用している要素を再評価しないのは IE8 の制限のようです。ただし、クラスとインラインの変更は検出されます (ボックスをドラッグできるのはそのためです)。
したがって、利用可能な時間で見つけることができる唯一の解決策は、jQuery .toggle() を使用してウィジェットを更新する必要があるときはいつでも、コードに偽のクラスを追加/削除することでした。そのため、プレビューとウィジェットに新しい data-col および data-row 属性が渡されたときに、コードに追加しました。これにより、IE8 が変更を取得し、プレビューが機能するようになります。
IE8 を使用しない以外に (はるかに) 優れた解決策があると確信しており、IE8 の互換性は保証されませんが、行き詰まっている場合は、これが役立つ場合があります。
ps IE8+だけ気にすればよかったのですが、modernizrなどのプラグインを使えばIE7でも大丈夫そうでした。ただし、IE6 で試したことはありませんが、うまくいくとは思えません。
[編集]
以下のコメントに従って、例をアップロードしましたが、IE8 を JSFiddle とうまく連携させることはできませんでした。したがって、IE8で動作する例は代わりにここにあります:
https://s3-eu-west-1.amazonaws.com/707074webfiles/gridster/ie8test.html
このインスタンスのプレビューに透明効果を (ほとんど) 追加する IE9.js を含めました。
gridster.js ファイルの変更されたコピーは次のとおりです。
https://github.com/Grozzer/gridster.js/blob/master/dist/jquery.gridster.js
ウィジェットのサイズ変更に関連する他の多くの変更が含まれています。ただし、IE8 の変更のみが必要な場合は、IE8compat の言及を検索するのが最善の答えだと思います。
執筆時点での ie8 の行の変更は次のとおりです。
- 717 : IE8 互換性オプションを追加
- 2054 - 2056 : プレビュー ウィジェットに .toggle オプションを追加
- 2433 - 2435 : 上に移動したウィジェットに .toggle オプションを追加
- 2488 - 2490 : 下に移動したウィジェットに .toggle オプションを追加