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)') ;
}
});
隐藏滑块文本框后,这给了我以下好处:
- 使用"change"事件对用户拖动做出反应,而不会在我的程序更改滑块值时触发。
- 当我的程序要更改滑块值时,它可以首先检查用户当前是否未拖动滑块。