다른 요소의 다른 이벤트가 트리거 될 때 요소에 이벤트를 바인딩하는 데 많은 문제가 있습니다. 내 HTML은 텍스트가 추가되면 텍스트가 추가되어 상황에 맞는 메뉴가 만들어집니다. 이 메뉴는 동적으로 생성 된 테이블이므로 클릭 이벤트를 요소에 바인딩하고 싶습니다. 그럼, 내 코드입니다 :jQuery - 이벤트를 한 번 바인드하십시오.
$("#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"을 처리해야했습니다.
(이전을 제거하지 않고) ...이 * 거의 * 확실히 당신이 원하지 않을 것입니다. 'keypress' 핸들러 밖에서 한번 * bind 할 필요가있다. – Matt