将重复的增量操作添加到";按钮“;在jQuery滑块的末端。需要在iPhone上工作
我有一个web应用程序,它使用了很多jQuery滑块。所有元素都通过下面的函数绑定到输入元素。这是非常好的工作,除了在iPhone上。从目前为止我在这里和其他地方的讨论中所看到的情况来看,目前还没有好的解决方案可以使滑块很好地工作 作为一种解决方法,我希望将重复动作绑定到我放置在滑块两端的“-”和“+”img。将它合并到我的sliderinit()函数中的最干净的方法是什么,以便在img上按住手指(或鼠标)将增加输入元素$(inpid)值、滑块标签$(sldlblid)并实时更新滑块拇指 请注意,这些值是浮点数,必须约束为函数参数中提供的最小值和最大值将重复的增量操作添加到";按钮“;在jQuery滑块的末端。需要在iPhone上工作,jquery,iphone,slider,Jquery,Iphone,Slider,我有一个web应用程序,它使用了很多jQuery滑块。所有元素都通过下面的函数绑定到输入元素。这是非常好的工作,除了在iPhone上。从目前为止我在这里和其他地方的讨论中所看到的情况来看,目前还没有好的解决方案可以使滑块很好地工作 作为一种解决方法,我希望将重复动作绑定到我放置在滑块两端的“-”和“+”img。将它合并到我的sliderinit()函数中的最干净的方法是什么,以便在img上按住手指(或鼠标)将增加输入元素$(inpid)值、滑块标签$(sldlblid)并实时更新滑块拇指 请注意
function sliderinit(inpid,min,max) {
var sldid = '#slider_'+inpid;
var sldlblid = sldid + "_val"
inpid = '#'+inpid;
$(inpid).hide();
$(sldid).slider(
{
min: min,
max: max,
step: (max-min)/100.,
value: $(inpid).val(),
stop: function(event,ui) {
$(inpid).val(ui.value);
$(sldlblid).text((ui.value).toFixed(2));
}
});
};
谢谢,
Mike发布问题后,我开发了一种将img按钮绑定到滑块动作的解决方案。代码发布在下面。它在滑块上定义自定义事件“incr”和“decr”,并安排img按钮在鼠标按下和按钮内发送这些事件。它在普通浏览器中运行得非常好 遗憾的是,它仍然不能解决iPhone的问题。img按钮根本没有响应——大概是因为苹果的触摸屏事件没有映射到正常的鼠标事件。我想他们这样做是为了支持手势界面。有人知道怎么避开它吗
function sliderinit(inpid,min,max) {
var sldid = '#slider_'+inpid;
var sldlblid = sldid + "_val"
inpid = '#'+inpid;
$(inpid).hide();
$(sldid).slider(
{
min: min,
max: max,
step: (max-min)/100.,
value: $(inpid).val(),
stop: function(event,ui) {
$(inpid).val(ui.value);
$(sldlblid).text((ui.value).toFixed(2));
}
});
// define custom slider events 'incr' and 'decr'
$(sldid).slider().bind("incr decr",{
max:max,
min:min,
slid:$(sldid).slider(),
inpid:inpid,
labelid:$(sldlblid),
}, function(e) {
var d = e.data;
var v = d.slid.slider("value");
var sign;
(e.type == "decr") ? sign = -1.0 : sign = 1.0;
var vf = parseFloat(v);
vf += sign * d.slid.slider("option","step");
if (vf > d.max) vf = d.max;
else if (vf < d.min) vf = d.min;
$(d.inpid).val(vf);
d.slid.slider("value",vf);
$(d.labelid).text(vf.toFixed(2));
}
);
// Arrange for clicks on + and - images to
// trigger custom slider events
var plus = sldid + "_plus";
var minus = sldid + "_minus";
$(plus).mousedown(function(e) {
$(plus).everyTime(100,"sliderbutton", function(){
$(sldid).trigger('incr');
})
});
$(plus).bind("mouseup mouseleave",function(e){
$(plus).stopTime("sliderbutton");
});
$(minus).mousedown(function(e) {
$(minus).everyTime(100,"sliderbutton", function(){
$(sldid).trigger('decr');
})
});
$(minus).bind("mouseup mouseleave",function(e){
$(minus).stopTime("sliderbutton");
});
};
函数滑块(输入ID、最小值、最大值){
var sldid='#slider'+inpid;
var sldlblid=sldid+“_val”
inpid='#'+inpid;
$(inpid.hide();
$(sldid).slider(
{
敏:敏,,
马克斯:马克斯,
步骤:(最大-最小)/100。,
值:$(inpid).val(),
停止:功能(事件、用户界面){
$(inpid.val)(ui.value);
$(sldlblid).text((ui.value.toFixed(2));
}
});
//定义自定义滑块事件“incr”和“decr”
$(sldid).slider().bind(“增量减量”{
马克斯:马克斯,
敏:敏,,
滑动:$(sldid).slider(),
inpid:inpid,
标签ID:$(sldlblid),
},功能(e){
var d=e.数据;
var v=滑动滑块(“值”);
var符号;
(e.type==“decr”)?符号=-1.0:符号=1.0;
var vf=浮点数(v);
vf+=符号*d.滑动滑块(“选项”、“步骤”);
如果(vf>d.max)vf=d.max;
否则,如果(vf