jQuery mobile 1.1.0 滑块:JS-对象属性访问

jQuery mobile 1.1.0 slider: JS-object properties access?

本文关键字:对象 属性 JS- 访问 滑块 mobile jQuery      更新时间:2023-09-26

EDIT:这可以被视为一个纯粹的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")

有没有类似的方式来访问这些属性?

谢谢

如何对用户拖动滑块做出反应,而不必绑定鼠标/点击事件,而是使用已有的 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. 使用"change"事件对用户拖动做出反应,而不会在我的程序更改滑块值时触发。
  2. 当我的程序要更改滑块值时,它可以首先检查用户当前是否未拖动滑块。