라이트 박스가 열리면 내 페이지에서 스크롤을 사용하지 않으려 고합니다. 정확히이 스크립트를 사용하면 매우 유용합니다. (http://jsfiddle.net/mrtsherman/eXQf3/3/), 안타깝게도, 내 자신의 페이지에서 사용할 때, 라이트 박스에서 스크롤을 사용할 수 없게됩니다. 나는 경고가있는 코드를 디버깅하기 시작하여 event.wheelDelta는 내 페이지에서 "정의되지 않음"을 반환하고 JSFiddle에서는 -120을 반환한다는 것을 알기 시작했습니다.event.wheelDelta는 정의되지 않은 값을 반환합니다.
답변
JQuery와 이벤트 핸들러의 event
객체는 실제 사건을 반영하지 않습니다. wheelDelta
은 비표준 이벤트 속성 IE와 Opera이며 jQuery 이벤트의 originalEvent
속성을 통해 사용할 수 있습니다. 의 jQuery 1.7+에서
는 detail
속성은 jQuery를 이벤트 객체에서 사용할 수 없습니다. 따라서 DOMMouseScroll
이벤트에서이 속성으로 event.originalEvent.detail
을 사용해야합니다. 이 방법은 이전 jQuery 버전과 역 호환됩니다.
event.originalEvent.wheelDelta
데모 : 또한 http://jsfiddle.net/eXQf3/22/
참조 : http://api.jquery.com/category/events/event-object/
고마워요, 효과가있었습니다! – CupOfTea696
당신은 천재입니다! 나는 다른 많은 해결책을 보았습니다. 그리고 당신의 바이올린은 근본적으로 뿌리 내리고 실제로 –
많은 시간을 절약 해 주셔서 감사합니다. – suvajit
$.fn.wheel = function (callback) {
return this.each(function() {
$(this).on('mousewheel DOMMouseScroll', function (e) {
e.delta = null;
if (e.originalEvent) {
if (e.originalEvent.wheelDelta) e.delta = e.originalEvent.wheelDelta/-40;
if (e.originalEvent.deltaY) e.delta = e.originalEvent.deltaY;
if (e.originalEvent.detail) e.delta = e.originalEvent.detail;
}
if (typeof callback == 'function') {
callback.call(this, e);
}
});
});
};
과 같이 사용 JQuery와-된 fying 기능에 대한 @ 마크하는
$('body').wheel(function (e) {
e.preventDefault();
$('#myDiv').append($('<div>').text(e.delta));
});
큰 THX (:
최신 Firefox에서는 작동하지 않습니다. 델타가 여기에 자리 잡고 있음을 발견했습니다.'if (e.originalEven t && e.originalEvent.deltaY) 반환 e.originalEvent.deltaY * -40' @ 마크가 고정 – mpen
, 나는이 크로스 브라우저 물건 –
그래 싫어, JQuery와에 의해 어떤 종류의 보편적 인 델타가 있었으면 좋겠어 .. 지금은 작동합니다, 왜 이것이 jQuery 코어에 포함되지 않을지 확신하지 못합니다. 나는 그것에서 기능을 만들었 : http://jsfiddle.net/mnbayazit/uTbGp/3/ FF와 크롬에서 작동, 아직 IE8에서 작동하지 않아. – mpen
해결책을 시도했습니다. psycho brm, 나는 Firefox에서 작동하도록 extractDelta(e)
함수를 변경했습니다. e.detail
대신 e.originalEvent.detail
을 사용했습니다. Firefox가 정의되지 않은 델타를 반환했기 때문입니다. 이 post에 솔루션과 테스트 코드를 업로드했습니다. 나는 그것이 도움이되기를 바랍니다. 웹킷과 FF의
function extractDelta(e) {
if (e.wheelDelta) {
return e.wheelDelta;
}
if (e.originalEvent.detail) {
return e.originalEvent.detail * -40;
}
if (e.originalEvent && e.originalEvent.wheelDelta) {
return e.originalEvent.wheelDelta;
}
}
"세부 사항"은 최신 Firefox에 존재하지 않는 것으로 보입니다. 현재 델타 X, Y, Z로 나눠져있는 것 같습니다. – mpen
안녕하세요. Mac에서 Firefox 27.0.1에서이 코드를 테스트 한 결과 마우스 휠에서 반환 한 이벤트를 확인했습니다. 그것은 여전히 내부, "originalEvent"요소를 포함하며 내부에 "detail"요소를 찾을 수 있습니다. 나는 그것을 가치를 확인하고 여전히 작동합니다. 휠을 앞뒤로 움직이면 기호가 바뀌고 휠의 속도에 따라 값이 변경됩니다.정상적인 값을 얻었습니다 : 1, -1, 2, -1, -4, 1 ... 정확히 어디에서 문제를 발견했는지 모르겠습니다. – Timbergus
$(this).on('mousewheel DOMMouseScroll', function(e){
var dat = $(e.delegateTarget).data(); //in case you have set some, read it here.
var datx = dat.x || 0; // just to show how to get specific out of jq-data object
var eo = e.originalEvent;
var xy = eo.wheelDelta || -eo.detail; //shortest possible code
var x = eo.wheelDeltaX || (eo.axis==1?xy:0);
var y = eo.wheelDeltaY || (eo.axis==2?xy:0); //() necessary!
console.log(x,y);
});
작품, 수 여기에없는 증거 IE :(나는 비슷한 문제를 했어 그것은 DOM 네임 스페이스 지정에 내려와
- 1. jQuery는 POST 호출로 정의되지 않은 값을 반환합니다.
- 2. SQL Result가 정의되지 않은 값을 반환합니다.
- 3. 자바 스크립트 함수는 정의되지 않은 값을 반환합니다.
- 4. Javascript - session.getAttribute가 정의되지 않은 값을 반환합니다.
- 5. jquery $ (this) .attr (...)는 정의되지 않은 값을 반환합니다.
- 6. node-mysql connection.query()는 정의되지 않은 값을 반환합니다.
- 7. jqGrid getCell 메서드는 IE8에서 정의되지 않은 값을 반환합니다.
- 8. 폼을 게시하는 Ajax에서 정의되지 않은 오류를 반환합니다.
- 9. 은 정의되지 않은 JSON 값을
- 10. 개체 값을 정의되지 않은 NaN이
- 11. NSLocalizedString은 아무 곳에도 정의되지 않은 텍스트를 반환합니다.
- 12. Javascript 함수는 변수를 정의되지 않은 값으로 반환합니다.
- 13. For 루프는 정의되지 않은 변수를 반환합니다.
- 14. 자바 스크립트 배열에서 정의되지 않은 코드를 반환합니다.
- 15. getJSON은 "undefined"값을 반환합니다.
- 16. 파이썬의 삼각 함수가 예기치 않은 값을 반환합니다.
- 17. Hyper-V RequestStateChange가 문서화되지 않은 값을 반환합니다.
- 18. PHP 함수가 예기치 않은 값을 반환합니다.
- 19. java xpath가 예기치 않은 값을 반환합니다.
- 20. MySQL JOIN에서 예기치 않은 값을 반환합니다.
- 21. 정의되지 않은 이중 값을 확인하는 방법은 무엇입니까?
- 22. Jquery Ajax에서 errorThrown이 정의되지 않은 값을 반환합니까?
- 23. 요소의 scrollheight는 정의되지 않은 값을 제공합니다.
- 24. 코드 또는 템플릿에서 정의되지 않은 값을 처리합니까?
- 25. 왜이 자바 스크립트는 정의되지 않은 값을 반환합니까?
- 26. jQuery는 .each()의 함수에서 정의되지 않은 문자열을 반환합니다.
- 27. 정의되지 않은 오프셋 : 9, 정의되지 않은 변수
- 28. 정의되지 않은
- 29. 정의되지 않은 키 확인
- 30. findpreference 정의되지 않은 유형
은. 당신은 몇 가지 코드를 표시하거나 바로 확인 할 수 당신의 이름과 이드가 다시있을 것입니다. 대답은 아마도 거기에있을 것입니다. – SpYk3HH