![](/img/trans.png)
[英]How to fire a “change” event when the user releases the range slider, even if the value hasn't changed
[英]jQuery UI slider 'change' event fires even when value has not changed
我试图在用户滑动滑块时触发事件,并在滑动停止时更改值。 根据jQuery文档, change
事件对于这种情况是理想的。 所以我试试这个:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Slider - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$( "#slider" ).slider({
change:function() { alert("foo"); }
});
});
</script>
</head>
<body>
<div id="slider"></div>
</body>
</html>
但是,我观察到当我将滑块向右拖动并再次将其拖回到起点(页面加载时滑块的初始位置)时,警报仍然会触发。 这是一个jQuery错误吗? 如果不是,我该如何解决这个问题?
$(function() {
$("#slider").slider();
var startPos = $("#slider").slider("value");,
endPos = '';
$("#slider").on("slidestop", function(event, ui) {
endPos = ui.value;
if (startPos != endPos) {
// do stuff
}
startPos = endPos;
});
});
试一试。
$(function() {
$("#slider").slider({
slide: function(event, ui) {
// use ui.value to get a number
// do your functions
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.