0

angularディレクティブを使用してjqueryプラグインを使用しています。angular イベントハンドラーの処理に問題があります。angular に keydown イベント ハンドラーがあり、jquery プラグインにも同じイベント ハンドラーがあります。キーダウンイベントを実行すると、Angular はイベントを検出して false / event.preventDefault() を返します。ただし、jquery プラグインでイベント ハンドラーを呼び出します。イベントハンドラーが角度からjqueryイベントハンドラーに移動するのをどのように停止できますか?

4

1 に答える 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 に答える