当我尝试动态更改 jqm slider (或 ListView )的值时,我遇到了这个神秘的错误
Undefined
Cannot call methods on slider prior to initialization;
attempted to call method 'refresh'
这是我的代码的简化版本
$("#mypage").bind("pagecreate", function(){
var server = new Updater(); // my ajax object to send / revive data
server.on("some_event", function(e){ // nothing more than a success callback
$("#slider").val(e.data.value).slider("refresh");
}
});
我还尝试使用 $(window).load
和 $(document).ready
但没有成功,但由于 jqm 告诉我使用 pagecreate 事件,所以我不这样做不知道到底出了什么问题。
最佳答案
刷新表单元素
在 jQuery Mobile 中,一些增强的表单控件只是简单地设置样式(输入),但其他控件是从 native 控件构建并保持同步的自定义控件(选择、 slider )。要使用 JavaScript 以编程方式更新表单控件,请首先操作 native 控件,然后使用刷新方法告诉增强控件更新自身以匹配新状态。下面是一些如何更新常见表单控件,然后调用刷新方法的示例:
复选框:
$("input[type='checkbox']").prop("checked",true).checkboxradio("refresh");
radio :
$("input[type='radio']").prop("checked",true).checkboxradio("refresh");
选择:
var myselect = $("#selectfoo");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");
slider :
$("input[type='range']").val(60).slider("refresh");
翻转开关(它们使用 slider ):
var myswitch = $("#selectbar");
myswitch[0].selectedIndex = 1;
myswitch.slider("refresh");
关于Jquery 移动 slider 刷新时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139260/