답변:
이 경고를 처음 수신 한 사용자 에게는 최신 이벤트 (2016 년 여름)에 브라우저에서 구현 된 수동 이벤트 리스너 라는 최첨단 기능 때문 입니다. 에서 https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md :
수동 이벤트 리스너 는 DOM 사양의 새로운 기능으로, 개발자가 터치 및 휠 이벤트 리스너를 차단하기 위해 스크롤 할 필요가 없어 스크롤 성능을 향상시킬 수 있습니다. 개발자는 {passive : true}로 터치 및 휠 리스너에 주석을 달아 preventDefault를 호출하지 않을 것임을 나타낼 수 있습니다. 이 기능은 Chrome 51, Firefox 49와 함께 제공되며 WebKit으로 제공됩니다. 자세한 공식 설명은 여기를 참조하십시오.
참조 : 수동 이벤트 리스너은 무엇입니까?
JavaScript 라이브러리를 통해 간접적으로 이벤트를 처리하는 경우 해당 라이브러리가 기능을 지원하는 데 도움이 될 수 있습니다. 2019 년 12 월 현재 주요 라이브러리가 지원을 구현 한 것처럼 보이지 않습니다. 몇 가지 예 :
preventDefault()
-이 경고를 표시하지 않을 수 있습니까?
경고 메시지가 숨겨집니다.
jQuery.event.special.touchstart = {
setup: function( _, ns, handle ) {
this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") });
}
};
preventDefault()
경우를 지정해야 passive: false
합니다. 그렇지 않으면을 지정하십시오 passive: true
. 둘 중 하나를 지정하지 않으면 경고 만 표시됩니다. 지정 passive: true
하고 preventDefault()
호출되면 오류가 발생하고 기본값이 방지되지 않습니다. 여기서 지정하는 passive
것은 해킹이 아닙니다. 그것은의 솔루션 . 경고가 요구하는 것입니다!
jquery-ui-touch-punch로 jquery-ui-dragable의 경우 Iván Rodríguez와 비슷하게 수정했지만 touchmove에 대한 이벤트 재정의가 하나 더 있습니다.
jQuery.event.special.touchstart = {
setup: function( _, ns, handle ) {
this.addEventListener('touchstart', handle, { passive: !ns.includes('noPreventDefault') });
}
};
jQuery.event.special.touchmove = {
setup: function( _, ns, handle ) {
this.addEventListener('touchmove', handle, { passive: !ns.includes('noPreventDefault') });
}
};
jQuery 3.4.1 slim 에서 작동하는 솔루션을 찾았습니다.
축소하지 않은 후 {passive: true}
다음과 같이 1567 행에서 addEventListener 함수에 추가하십시오 .
t.addEventListener(p, a, {passive: true}))
아무것도 깨지 않고 등대 감사는 청취자에 대해 불평하지 않습니다.