将重复的增量操作添加到";按钮“;在jQuery滑块的末端。需要在iPhone上工作

将重复的增量操作添加到";按钮“;在jQuery滑块的末端。需要在iPhone上工作,jquery,iphone,slider,Jquery,Iphone,Slider,我有一个web应用程序,它使用了很多jQuery滑块。所有元素都通过下面的函数绑定到输入元素。这是非常好的工作,除了在iPhone上。从目前为止我在这里和其他地方的讨论中所看到的情况来看,目前还没有好的解决方案可以使滑块很好地工作 作为一种解决方法,我希望将重复动作绑定到我放置在滑块两端的“-”和“+”img。将它合并到我的sliderinit()函数中的最干净的方法是什么,以便在img上按住手指(或鼠标)将增加输入元素$(inpid)值、滑块标签$(sldlblid)并实时更新滑块拇指 请注意

我有一个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