angularディレクティブを使用してjqueryプラグインを使用しています。angular イベントハンドラーの処理に問題があります。angular に keydown イベント ハンドラーがあり、jquery プラグインにも同じイベント ハンドラーがあります。キーダウンイベントを実行すると、Angular はイベントを検出して false / event.preventDefault() を返します。ただし、jquery プラグインでイベント ハンドラーを呼び出します。イベントハンドラーが角度からjqueryイベントハンドラーに移動するのをどのように停止できますか?
1 に答える
0
そもそも、jQuery イベントと一緒に Angular イベントを処理するべきではありません。ただし、必要に応じて、使用してみてくださいevent.stopPropagation()
それでもうまくいかない場合は、jQuery でイベントが停止したかどうかを確認できます。
event.isPropagationStopped()
ブール値を返します。http://api.jquery.com/event.isPropagationStopped/
最悪のシナリオでは、共有フラグ (angular イベント ハンドラーと jQuery イベント ハンドラーの両方にスコープ内で表示される変数) を保持し、常に jQuery ハンドラーを数ミリ秒遅らせてから、angular ハンドラーでisHandled
フラグを立てます。 . jQuery イベント ハンドラーに関しては、if フラグがfalse
ハンドル イベントです。フラグがtrue
下位フラグの場合、処理せずに戻ります。
しかし、あなたの最善の策は、Angular でのみイベントを処理し、jQuery を失うことです。
于 2013-09-05T22:11:02.203 に答える