我工作的情況,當我有,我在這裏花了兩年的jQuery滑塊控件的值: http://jqueryui.com/demos/slider/#rangemin限制jQuery的滑塊到另一個滑塊
我需要根據其他值,以便限制一個他們沒有重疊。我想出了下面的代碼。它的工作,除了一個非常惱人的問題 - 當我拖動滑塊時,他們會在我拖着它們時經過另一個滑塊,只有當我釋放鼠標按鈕時才恢復到限制值。
純屬偶然,我找到了添加ui.someunknownmethod('1')的解決方案;下面一行。
所以我的問題是,我可以保持這一行而不會造成任何問題?
<style type="text/css">
body{ font: 62.5% "Trebuchet MS", sans-serif; margin: 50px;}
#slider1 .ui-slider-range { background: #8ae234; }
#slider2 .ui-slider-range { background: #729fcf; }
#sliderContainer{
width: 400px;
margin: 6px 0px;
}
</style>
</head>
<body>
<!-- Slider -->
<div id="sliderContainer">
<div id="slider1"></div>
</div>
<div id="sliderContainer">
<div id="slider2"></div>
</div>
<span id="txt">-</span>
<span id="txt2">-</span>
<script>
$(function(){
$("#slider1").slider({
orientation: "horizontal",
range: "max",
max: 255,
value: 50,
slide: refresh1,
change: refresh1
});
$("#slider2").slider({
orientation: "horizontal",
range: "max",
max: 255,
value: 30,
slide: refresh2,
change: refresh2
});
});
function refresh1(e, ui)
{
var slider2 = $("#slider2");
var v1 = ui.value;
var v2 = slider2.slider('value');
if(v1 < v2)
{
$("#slider1").slider('value', v2);
//This is the line that "saves the day"
ui.someunknownmethod('1');
}
$("#txt").text(v1);
}
function refresh2(e, ui)
{
var slider1 = $("#slider1");
var v1 = slider1.slider('value');
var v2 = ui.value;
if(v2 > v1)
{
$("#slider2").slider('value', v1);
//This is the line that "saves the day"
ui.someunknownmethod('1');
}
$("#txt2").text(v2);
}
</script>
</body>
編輯:不要使用拋出未處理的異常的方法 - 它會在大多數瀏覽器中運行,當然,除了舊的IE的其中瀏覽器將顯示一個消息框彈出每個遇到錯誤。這對於用戶來說會很煩人!
到目前爲止,我無法找到我要找的,(從此改寫滑塊UI代碼得很開),所以如果有人發現了它,請在這裏發表吧...
它不會限制滑塊的位置,它只是設置它的最小範圍值,但滑塊頭尚可。物理上被拖動到滑塊的左側/右側。 – ahmd0