1

编辑:这可以看作是一个纯 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")

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

谢谢

4

1 回答 1

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. 当我的程序更改滑块值时,使用“更改”事件对用户拖动做出反应,而不会被触发。
  2. 当我的程序要更改滑块值时,它可以首先检查用户当前没有拖动滑块。
于 2012-06-02T16:29:55.827 回答