別の要素からの別のイベントがトリガーされたときに、イベントを要素にバインドするのに多くの問題があります。私のHTMLはテキストボックスで、テキストが追加されると、サジェレンスのあるコンテキストメニューが作成されます。このメニューは動的に作成されたテーブルであるため、クリック イベントをその要素にバインドしたいと考えています。だから、これは私のコードです:
$("#TextBox").on("keypress", function(e) {
$("#Menu").find("td").on("click", function(event) {
event.stopPropagation();
event.preventDefault();
processText(event, $(this).children().text());
});
$(this).off(e);
});
でも、なぜかわからない、うまくいかない。また、変数を作成してフラグとして使用しようとしましたが、どちらも機能しません。
バインドを解除しないと、ユーザーがキーを押した回数だけクリック イベントがトリガーされます。しかし、一度だけ実行されるようにバインドを解除したいのです。
EDIT:エラーは、私が間違ったイベントを処理していたことです。「keypress」ではテーブルがまだ存在しなかったため、「keyup」を処理する必要がありました。