2
좋아 다른 결과를보고, 그래서 매우 비슷한 질문은 여기 jQuery를 UI 슬라이더 변화와 슬라이드 이벤트는
jQuery UI Slider - Value returned from 'slide' event on release is different from 'change' value
을 요청했다하지만 대답은 내 의견에 불만족했다. 여기 내 자바 스크립트 코드 : http://jsfiddle.net/AsDZJ/4/function slideVal() {
var number = $("#number_slider").slider("value");
$("#number_field").append('Slide: ' + number + '<br/>');
}
function changeVal() {
var number = $("#number_slider").slider("value");
$("#number_field").append('Change: ' + number + '<br/>');
}
$(function() {
$("#number_slider").slider({
min: 1,
max: 10,
change: changeVal,
slide: slideVal
});
$("#number_slider").slider("value", 5);
});
문제는 슬라이더가 변화 핸들러가 호출 될 때 사이의 서로 다른 값을보고하고, 슬라이드 핸들러가 호출 될 때이다.
지금, 다른 문제는 익명 함수를 선언하는 경우, 당신은 단순히과 같이, ui.value를 사용할 수 있음을 지적한다 :
$("#number_slider").slider({
min: 1,
max: 10,
change: function(event, ui) {
$("#number_field").append('Change: ' + ui.value + '<br/>');
}
});
이 더 일관성있는 결과를 제공 않습니다,하지만 의미있는 경우 그, 내 경우처럼 이벤트가 바뀔 때마다 수행해야 할 복잡한 논리가 많아 코드를 반복해야합니다. 또한 계산에는 여러 슬라이더의 슬라이더 값이 포함됩니다.
명시 적으로 선언 된 함수에서 올바른 값에 액세스하려면 어떻게합니까? jQuery UI 버그?
감사
잘 익명 콜백을 사용하는 함수 이름을 전달 초기화 할 때 당신은 여전히 매개 변수와 전역 함수를 정의 할 수 있습니다, 여기에 하나 개의 솔루션입니다. 나에게는 꽤 어리석은 것처럼 보입니다. 아마도 누군가 더 나은 대답을 줄 수 있습니다. 두 범위에서 사용할 수있는 변수를 설정했습니다. 익명 이벤트 처리기 함수 내에서 먼저 'ui.value'를 사용하여 적절한'전역 '변수를 설정 한 다음 계산 논리를 처리하는 함수를 호출합니다. http://jsfiddle.net/AsDZJ/6/ – Sibicle
안녕하세요, 이것이 도움이 될지 모르겠지만 사용 중지 이벤트를 사용하고 변경 이벤트와 결과를 교차 시키도록하십시오. 나는 변화의 최종 가치가 슬라이드 이벤트가 아니라 정지 이벤트 값이어야한다고 생각하기 때문에 이것을 말하고 있습니다. – joao