代码之家  ›  专栏  ›  技术社区  ›  yoda

jQuery UI滑块-大范围

  •  0
  • yoda  · 技术社区  · 14 年前

    我用jquery ui制作了一个滑动条,wich的工作完全正常,除了范围从0到250000,而且因为每次有变化时,我都有一个调用ajax请求的事件,如果我从一个侧面慢慢滑到另一个侧面,结果将是大量的ajax请求,wich是一点也不好。

    一直在研究jquery ui文档,但没有找到任何解决这个问题的方法。我会暂时阻止用户按下滑块时的事件,并且只在用户停止与之交互时触发事件,但没有发现这方面的问题。

    有什么想法吗?

    干杯!

    3 回复  |  直到 14 年前
        1
  •  5
  •   James Kovacs    14 年前

    与其订阅滑块的幻灯片事件,为什么不订阅其幻灯片更改或停止幻灯片事件?

    $( ".selector" ).slider({
       change: function(event, ui) { ... }  // Called after slidestop or if changed programmatically
       stop: function(event, ui) { ... }    // Called when user stops sliding
    });
    
        2
  •  0
  •   Soviut    14 年前

    一种可能是创建一个计时器,并给它一个以毫秒为单位的超时时间,比如500,即半秒。每次触发幻灯片事件时,将计时器重置回超时时间。

    如果计时器成功地完全倒计时,您可以假定用户已停止移动滑块并触发Ajax调用。

    这是jquery插件喜欢的方法 TypeWatch 用于仅在用户停止在文本框中键入时发送Ajax请求。

        3
  •  0
  •   Lalit Bhudiya    12 年前
        we can define steps in it also like,
    
        $("#slider-range-max").slider({
                range : "max",
                min : 0,
                max : 200,
                step : 0.1,   //steps
                value : 200,
                slide : function(event, ui) {
                    $("#amount").val(ui.value);
                }
            });
    
    Even we can handle it by writing value in textbox like this,
    
    on value change of textbox call this function by passing parameter this.value
    
    function setSlider(value) {
        $("#slider-range-max").slider({
            range : "max",
            min : 0,
            max : 200,
            step : 0.1,
            value : value,  // value will be setted slider position as par value
            slide : function(event, ui) {
                $("#amount").val(ui.value);
            }
        });
        $("#amount").val($("#slider-range-max").slider("value"));
    }