event.layerX 및 event.layer 관련 WebKit 문제y
저는 방금 제가 최신 (카나리아) 빌드의 크롬에서 사용되지 않는 경고를 많이 받는다는 것을 알아차렸습니다.
event.layerX 및 event.layerY가 손상되어 WebKit에서 사용되지 않습니다.그것들은 가까운 미래에 엔진에서 제거될 것입니다.
jQuery가 일을 망치는 것 같습니다.
사용 중:jquery-1.6.1.min.js
.
최신 jQuery 버전으로 업그레이드하는 것이 도움이 될까요, 아니면 아직 수정되지 않았나요, 아니면 크롬 버그인가요, 아니면 다른 것인가요?
PS
일반적인 오류라고 생각하기 때문에 코드를 보여줄 수는 없지만, jQuery 개체에 액세스하려고 할 때 또는 jQuery가 레이어 X/레이어 Y에 액세스하려고 할 때 경고가 발생하는 것이 의심됩니다(글쎄요, 오류:P를 고려하면 그렇습니다).
jQuery는 이러한 속성을 jQuery 개체에 복사합니다.
그래서...
무슨 일이야?
편집
jQuery 1.7은 출시되었으며 이 문제를 해결합니다.
무슨 일이에요?
"jQuery는 이러한 속성을 jQuery 개체에 복사합니다."당신이 정확히 맞으니, 이미 알고 있는 것처럼 들립니다! :)
jQuery가 코드를 업데이트하여 그것을 건드리지 않기를 바라지만, 동시에 WebKit는 이벤트에 대한 사용 중지 경고를 기록하지 말았어야 했습니다(적어도 제 생각에는).마우스 이동 핸들러 하나로 콘솔이 폭발합니다.:)
여기 최근 jQuery 티켓이 있습니다: http://bugs.jquery.com/ticket/10531
업데이트: jQuery 1.7로 업그레이드하면 이 문제가 해결됩니다.
jQuery를 업그레이드해도 문제가 해결되지 않으면 Jake가 답변에서 언급한 것처럼 사용된 확장/플러그인과 관련이 있을 수 있습니다.
http://jsperf.com/removing-event-props/2
임시 수정 사항은 jQuery를 통해 이벤트 바인딩을 수행하기 전에 이 코드를 실행하는 것입니다.
(function(){
// remove layerX and layerY
var all = $.event.props,
len = all.length,
res = [];
while (len--) {
var el = all[len];
if (el != 'layerX' && el != 'layerY') res.push(el);
}
$.event.props = res;
}());
갱신하다
이벤트 소품을 제거하는 가장 빠른 방법은 무엇인지 알아보려면 최신 성능 테스트를 참조하십시오.
이에 대한 가장 짧은 해결책은 다음과 같습니다.
$.event.props = $.event.props.join('|').replace('layerX|layerY|', '').split('|');
이러한 엄청난 양의 메시지는 크롬의 버그입니다.
당신은 크롬에 대한 이슈를 시작해야 합니다.
Chrome 확장으로 인해 발생할 수도 있으니 jQuery 업데이트가 작동하지 않으면 확인하십시오.
만약을 위해 $.event.props(어레이일 수도 있고 아닐 수도 있음)의 원래 인스턴스를 교체하지 않고 다른 한 줄 수정이 있습니다. :-)
$.each(["layerX","layerY"], function(i,v) { if((i=p.indexOf(v)) > -1) $.fn.splice.call($.event.props,i,1) })
이벤트를 호출한 후 사용했습니다.
$.event.props.splice($.event.props.indexOf("layerY"),1);
$.event.props.splice($.event.props.indexOf("layerX"),1);
그것은 저에게 효과가 있었습니다. 저는 제 코드에 이 패치를 적용했기 때문에 경고 메시지가 없습니다.
이 오류는 다른 답변에 나열된 구성 문제뿐만 아니라 jQuery ID 선택기의 '#'을 잊어버린 사용자 코드의 간단한 오류로 인해 발생할 수 있습니다.
다음과 같은 코드가 있었습니다.
$('datenotset_2341').click(function(){
....etc....
});
("datenotset" 앞에 #을 표시합니다.)
(분명히) 작동하지 않을 뿐만 아니라 Chrome에서 이 오류 메시지를 트리거했습니다.
제 코드에서 이 문제에 부딪혔습니다.사용하던 디버깅/검사 도구의 일부로 이벤트 개체의 모든 속성을 반복했습니다.이 특정 사례에서 저는 나중에 검사하기 위해 jQuery의 $.extend를 사용하여 개체를 복제하고 있었지만 다양한 툴킷의 표준 반복 기술도 경고를 트리거했을 것이라고 생각합니다.
단순히 코드 기반에서 레이어 X 또는 레이어 Y의 인스턴스를 검색하는 것이 도움이 되지 않았기 때문에 여기서 언급합니다. 속성은 이름이 아닌 일반적으로 참조되고 있었습니다.
언급URL : https://stackoverflow.com/questions/7825448/webkit-issues-with-event-layerx-and-event-layery
'programing' 카테고리의 다른 글
오류: Ionic을 사용하는 동안 '.../lib/utils/unsupported.js' 모듈을 찾을 수 없습니다. (0) | 2023.05.24 |
---|---|
서버의 차이점은 무엇입니까?MapPath 및 호스팅 환경.지도 경로? (0) | 2023.05.24 |
배열에서 하나의 요소를 값으로 삭제하는 방법 (0) | 2023.05.24 |
새 파일이 없는 경우 파일에 쓰고 파일이 있는 경우 파일에 추가 (0) | 2023.05.24 |
루비에서 숫자 배열을 합치는 방법은 무엇입니까? (0) | 2023.05.24 |