최근 프로젝트에서 요소 바인딩 이벤트를 JS에 동적으로 제공해야합니다. 당신은 전에 이것을 사용하지 않았습니다. 그건 그렇고, 당신은 그것에 대해 배울 수 있습니다. 그래서 당신은 이벤트를 구글로하고 다음 두 가지 이벤트를 썼습니다. 하나는 이벤트를 추가하고 다른 하나는 이벤트를 제거하는 것입니다.
/addeventListener (), removeEventListener ()는 이벤트 핸들러를 지정하고 삭제하는 작업을 처리하는 데 사용됩니다. // 범위 : 이벤트 핸들러는 요소의 범위 내에서 실행됩니다. // addeventListener (이벤트, 함수, 캡처/버블); removeEventListener (이벤트, 기능, 캡처/버블) // 매개 변수 이벤트가 위의 표에 나와 있습니다. 함수는 실행되는 기능입니다. 캡처 및 버블은 W3C에 의해 공식화 된 2 개의 시간 모드입니다. // 간단하게, 캡처는 문서의 시작 부분에서 마지막 줄을 읽은 다음 이벤트를 실행하는 것입니다. 버블은 먼저 지정된 위치를 찾은 다음 이벤트를 실행합니다. // 캡처/버블 매개 변수는 부울 값이며, 캡처를 사용하는 진정한 수단, 거품은 버블 함수 addEvent () {var obj = document.getElementById ( "txtItiTiacity"); if (wind } else {// IE의 이벤트 코드는 추가 메소드 obj.attachevent ( 'onfocus', function () {test ( 'aa')}); }} 함수 removeEvnent () {var obj = document.getElementById ( "txtItiTacity"); if (wind } else {obj.detachevent ( 'onfocus', function () {test ( 'aa')}); }}페이지가로드되면 위의 방법이 입력 바인딩 이벤트로 호출됩니다. 테스트는 성공적으로 추가되지만 제거는 성공하지 못합니다. 그래서 온라인으로 참조 자료를 검색했습니다
// addeventListener ()를 통해 추가 된 이벤트는 removeEventListener ()에서만 제거 할 수 있습니다. 이것은 완료되었습니다. 아래에 또 다른 문장이 있습니다 : // addeventListener ()에 의해 추가 된 익명 함수는 제거되지 않으면 제거됩니다. 문제가 발견되었습니다. function () {test ( 'aa')} // invalid. addeventListener ()에 전달 된 메소드가 동일하지 않기 때문에 removentListener ()가 동일하지 않으므로 test ( 'aa')가 제시되고 함수 테스트 (msg) {alert (msg) {var joct. if (wind } else {// ie의 이벤트 코드는 추가 메소드 obj.attachevent ( 'onfocus', test ( 'msg')})를 추가합니다. }} 함수 removeEvnent () {var obj = document.getElementById ( "txtItiTacity"); if (wind } else {obj.detachevent ( 'onfocus', test ( 'msg')); }}따라서 실행 IE 프롬프트 : 유형 불일치는 매개 변수로 함수를 지원하지 않는 것으로 보이므로 함수는 매개 변수가없는 형태로 다시 캡슐화됩니다.
실행, 추가 성공, 제거 또는 고장. 오랫동안 온라인을 검색 한 후, 나는 거의 이런 식으로 글을 썼고 성공했습니다. 내가 왜 내 것을 제거 할 수 없었는지 모르겠습니다.
나중에, 나는 jQuery가 원래 페이지에서 참조 된 것을 보았으므로 jQuery의 바인드와 바인드 이벤트를 사용하여 성공했습니다.
아아, 프로젝트가 완료되면이 문제를 해결해 봅시다.
요소에 이벤트를 추가하고 제거하는 위의 JS 동적 구현 방법은 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.