jQuery mobile 1.1.0 slider:JS-object属性访问?

时间:2012-06-01 19:49:21

标签: javascript jquery jquery-mobile slider

编辑:这可以看作纯粹的javascript对象问题。代码可以在这里找到: jquery.mobile-1.1.0.js

我需要访问jQuery移动JS对象的属性,但不确定这是怎么回事。在jquery.mobile-1.1.0.js和mobile.slider中如下(参见第5967行的扩展):

$.widget( "mobile.slider", $.mobile.widget, {
  ...
  _create: function() {
    ...
    $.extend( this, {
      slider: slider,
      handle: handle,
      valuebg: valuebg,
      dragging: false,
      beforeStart: null,
      userModified: false,
      mouseMoved: false
    });

我想阅读的属性主要是"拖动"。

我知道我可以使用以下方法执行这些方法:

$("#slider").slider("refresh")

是否有类似的方式来访问属性?

由于

1 个答案:

答案 0 :(得分:0)

如何对用户拖动滑块作出反应,而不必绑定鼠标/点击事件,而是使用已经存在的JQM功能。

要访问JQM滑块对象的“拖动”变量,我按如下方式对对象进行了扩展:

$(document).bind("mobileinit", function(){
  $.mobile.slider.prototype.getDragging = function(){
    return this.dragging;
  };
});

有了这个,我可以选择对仅由用户完成的更改作出反应:

$("#slider").live('change',function(){
  if($("#slider").slider("getDragging"))){
    console.log('User is dragging slider to new value'); 
  }
  else {
    console.log('Program changed value. (or user typed in visible textbox)') ;
  }
});

隐藏了滑块文本框,这给了我以下好处:

  1. 当我的程序更改滑块值时,使用“更改”-event响应用户拖动而不会被触发。
  2. 当我的程序要更改滑块值时,可以先检查用户当前是否正在拖动滑块。