2012-06-08 11 views
5

私はこのようにjQueryを使用してラファエロ要素にpointer-events: noneを実装している:ポインタイベント:なしVMLラファエル・ソリューション

var raphaelElement = Raphael.ellipse(x,y,w,h); 
$(raphaelElement.node).css({'pointer-events': 'none'}); 

これはうまく動作しますが、IE8で、もちろん、ラファエルは、代わりにSVGのVMLを使用しており、このソリューションが失敗しました。

ラファエルの要素を事実上無視させる別の解決策を誰かが持っていますか?

答えて

7

IE8(およびそれ以前)のためにこの作品を作るための唯一の方法は、実際にイベントをキャッチすること、およびイベントハンドラになります

<オール=スタート「2」>
  • は(.style.display='none')要素を隠します
  • .style.display='')再びキャッチャーを示す
  • (またthis参照) 'キャッチャー'
  • re-create and fire the event on that element以下の次の要素を見つけるために、elementFromPoint()方法を使用

    この一般的なアプローチ(マイナスステップ3)はIE上で10年以上使用されており、下にドロップターゲット要素の「マウスオーバー」を検出しながら、カーソルの下に直接ドラッグすることができます。

  • +0

    nice。非常に。初めて私は自分自身ではないリンクを共有しました:) –

    +0

    私はRaphaelと同じ問題を抱えてあなたの解決策を試しています。しかし、IE8では、elementFromPointは基底の要素の代わりにnullを返します。 IE8のelementFromPointは壊れていますか?心配はありますか? – Fabian

    +0

    @Fabian十分に再現可能なテストケースとともに、独自の質問としてこれを質問してください。 – Phrogz

    関連する問題