ie8 호환성 문제 (5) 이벤트 대상, e. target 과 e. preventDefault

1366 단어 JavaScript호환성
이벤트 대상
chrome, fireforx 등 브 라 우 저 에서 이벤트 대상 은 이벤트 함수 의 인자 에서 들 어 올 수 있 습 니 다.ie8 에서 window 대상 에서 가 져 와 야 합 니 다.$("#btn").click(function(e) {
var event = e | window.event;
})

target
e. target 은 현재 요 소 를 가 져 오 는 데 사 용 됩 니 다. this 와 차이 가 많 지 않 습 니 다.그러나 ie8 에 서 는 e. target 을 지원 하지 않 습 니 다.다음 과 같은 방법 으로 해결 할 수 있다.$("#btn").click(function(e) {
var event = e | window.event;
var target= event .target || event .srcElement; // document
})

preventDefault
  • e. preventDefault 의 역할 은 기본 행 위 를 막 는 것 이 고 a 태그 등 기본 적 인 행동 을 하 는 요소 에 자주 사용 된다.예 를 들 어 a 탭 을 클릭 할 때 기본 점프 링크 는 e. preventDefault 로 막 을 수 있 습 니 다.
  • a 라벨 의 기본 점프 행 위 는 다음 과 같은 방식 으로 막 을 수 있다 첫 페이지 로 건 너 뛰 기
  • 프로젝트 에서 오랫동안 생각 한 호환성 문제 도 만 났 다. button 단 추 는 button 단추 에 클릭 이 벤트 를 추가 한 후 클릭 하면 탄 상자 가 나 오지 만 리 턴 을 누 르 면 탄 상자 가 계속 나 올 수 있다.이것 은 input 나 button 등 폼 요소 에 초점 을 맞 출 때 브 라 우 저 는 기본적으로 리 턴 을 눌 렀 을 때 버튼 을 누 르 는 클릭 이 벤트 를 터치 합 니 다. 이 때 는 일반적인 방법 으로 기본 행동 을 막 을 수 있 기 때 문 입 니 다
  • $("button").click(function(e) {
    var event = e | window.event;
    if(e.preventDefault) {
    event .preventDefault();
    }else{
    event .returnValue = false;
    }
    });
  • 좋은 웹페이지 즐겨찾기