순수한 JavaScript (JQuery 없음)를 사용하는 웹 사이트가 있고 텍스트 상자에 이벤트를 트랩하려고합니다. 텍스트 상자가 테이블에 있으며 페이지에 여러 개의 테이블 (고유 ID가있는 테이블)이있을 수 있습니다. 텍스트 상자는 Javascript에 의해 동적으로 생성되고 HTML 표가 브라우저로 전달 된 후 표에 추가됩니다.자바 스크립트; 이벤트에 인수를 추가하는 방법?
onkeyup 이벤트를 트랩하려고하고 이벤트를 트리거 한 텍스트 상자가 포함 된 테이블을 알고 있습니다.
onkeyup 이벤트에 연결되는 함수는 방금 가져온 키에 대한 정보를 제공하는 인수 (이벤트 자체)와 함께 호출됩니다. 대단하다. 나는 그것을 얻을 수있다. 나는 그 열쇠를 안다. 다 좋다.
textbox.onkeyup = my.namespace.textboxAge;
my.namespace.textboxAge = function (event) {
console.log("I got the event:" + event.ToString()); };
내가해야 할 일은 함수 호출에 추가 정보를 첨부하여 원래 이벤트와 테이블 또는 테이블 ID를 얻는 것입니다.
내가 같이가 onkeyup 이벤트에 뭔가를 내 핸들러를 연결할 때 나는 테이블 참조의 함정에 폐쇄에 대해 생각 ...
var table = document.getElementByID("table5");
textbox.onkeyup = function (event,table) {
console.log("I got event:" + event.ToString() + " on table " + table.id); }
을하지만이 작동하지 않는, 이벤트가 설정되지 않은 상태 클로저 함수가 첨부되어 있으므로 onkeyup이 발생하면 null이 유지됩니다.
나는이 문제를 해결했지만 이벤트에 정보를 추가하는 방법에 대해 혼란스럽고 가능한지, 어떻게해야하는지 알고 싶습니다.
네,하지만 나는 테이블 변수, 즉 전체 지점의합니다. 이벤트와 테이블을 얻는 방법은 무엇입니까? 시도해 줘서 고마워. –
당신은 * 테이블 변수를 얻습니다. 이것이 클로저의 전체 지점입니다. 내가 입력 한 코드와 정확히 일치하는 것은 당신이 원하는 것이 아닙니다. – jlahd
아, 아마도 내가 잘못 이해 한 것 같습니다. '닫힌 테이블 변수가 덮어 쓰게됩니다'라고 말했을 때 나는 테이블 변수를받지 못한다고 생각했습니다. 나는 그것을 시험해야 할 것이다. 도와 주셔서 감사합니다. –