> 웹 프론트엔드 > JS 튜토리얼 > jQuery 파트 9 읽기: 일부 결함 설명_jquery

jQuery 파트 9 읽기: 일부 결함 설명_jquery

WBOY
풀어 주다: 2016-05-16 18:05:50
원래의
1077명이 탐색했습니다.

1. 바인드 방식, 마지막 매개변수 fn은 중복

코드 복사 코드는 다음과 같습니다.

// 객체 리터럴 처리
if ( typeof type === "object" ) {
for ( var key in type ) {
this[ name ](key, data, type[key ], fn) ;
}
반환
}

2, 댓글
코드 복사 > 코드는 다음과 같습니다.
// 클릭에 추가: 1 === 왼쪽; 2 === 중간; 3 === 오른쪽

을 수정해야 합니다.

의 코드를 복사합니다. 코드는 다음과 같습니다.
// mousedown/mouseup에 대해 추가: 1 = == left; 2 === middle; 3 === right

3, 데이터 메서드는 내부 변수 InternalKey를 정의하지만 후속 코드 여전히 jQuery.expando를 사용합니다.

코드 복사 코드는 다음과 같습니다.
var InternalKey = jQuery.expando, getByName = typeof name = == "string", thisCache,

4, jQuery.event.add 메서드에서는 인수가 e로 변경되고, Apply가 호출로 변경되어 더 좋습니다. 하나의 매개변수(이벤트 객체)만 전달되기 때문입니다.

코드 복사 코드는 다음과 같습니다.
elemData.handle = eventHandle = function( e ) {
// jQuery.event.trigger()의 두 번째 이벤트를 삭제하고
// 페이지가 언로드된 후 이벤트가 호출되는 경우
jQuery의 반환 유형 !== "정의되지 않음" && ( !e |jQuery.event.triggered !== e.type) ?
jQuery.event.handle.apply( eventHandle.elem, 인수 ) :

}; >

5 "브라우저를 반복적으로 감지하지 않는다"는 원칙에 따라 jQuery.event.다음 코드를 추가합니다


코드 복사 코드는 다음과 같습니다: if ( elem.addEventListener ) {
elem.addEventListener( type, eventHandle, false )

} else if ( elem.attachEvent ) {
elem.attachEvent( "on" type, eventHandle );
}


는 다음으로 바꿔야 합니다.


코드 복사 코드는 다음과 같습니다. jQuery.addEvent = document.addEventListener
function( elem, type, handler ) {
if ( elem.addEventListener ) {
elem.addEventListener( 유형, 핸들, false )
}
} :
function( elem, 유형, 핸들 ) {
if ( elem.attactEvent ) {
elem.attactEvent( "on" type, handler );
}
};


사실 jQuery에는 이미 jQuery.removeEvent가 있지만 어떤 이유로 jQuery.addEvent가 없습니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿