2

Googleカレンダーのような小さなカレンダーアプリを構築しようとしています。イベントをグリッドに合わせるために、クリックしてドラッグする機能を使ってイベントを作成しようとしています。私は の下に移動する(イベントを長くする)ときに動作するイベントDIV要素の下のTD要素にドラッグを結びつけようとしていますが、上向きに動きません(イベントを縮小する)。JavaScriptは、他の要素の下にある要素にmouseenterイベントを渡します。

何が起こるかは、イベントDIV要素に対してmouseenterイベントが発生しますが、潜在的なTDに対しては発生しません。上に移動してDIVのサイズを変更しようとすると、TDが実際にmouseenterイベントを受け取るためにDIVが動作します。

GoogleカレンダーとjQuery Week Calendarはmousemoveイベントを使用しますが、すべてのピクセルでmousemoveイベントが発生するため、無駄です。 mousemoveイベントを使用せずにこれを書く方法はありますか?

DIV要素をテーブルの後ろに置くことは可能ですか?テーブルがやや透過的であれば、ユーザはDIVを見ることができますが、TD上で実際にイベントを発生させることになります。私はz-indexでこれをやろうとしましたが、実際にはうまくいきませんでした。

jsFiddleコード例:

を使用すると、要素の後ろにイベントを発生します:http://jsfiddle.net/rockymeza/8SHpA/

+1

私がイベント正規化に不満を感じるとき、私は 'jQuery'と呼ばれる関数とイベントの私の標準ライブラリを取り出します。 – zzzzBov

+0

@zzzBov私はあなたが私の質問を理解したとは思わない、私は実際にjQueryを使用しています。これは私が実行しているクロスブラウザの正規化のバグではありません。 – rockymeza

+0

あなたはjQueryにタグを付けませんでした。 – zzzzBov

答えて

1

あなたは私が持っていた問題の似たようなものを持っているように聞こえますか?答えはCSSです。ポインタイベントを設定する:なし;親に

タッチデバイスで同じ動作を実装しようとした(失敗した)テストをしました。問題の解決に役立つ場合はhttp://www.hakoniemi.net/misc/pointer-events.htmlで確認できます。

+0

ありがとう@zvona、私はIEをサポートする必要がなかった場合、私は 'ポインタイベント'を使用します。代わりに私は 'z-index:-1'を使いました。私はテーブル上で 'z-index:2'と' z-index:1'をdivで使うことができると思っていましたが、うまくいきません。負の 'z-index'は私にとってはうまくいくようです。 – rockymeza

関連する問題