我尝试在init页面上更改滑块属性:
$(document).delegate('#my-page','pageinit', InitMyPage());
function InitMyPage() {
var today = new Date();
$("#my-slider").prop({
min: 1,
max: 50
}).slider("refresh");
}
看起来在页面init [{1}}仍然未知。
当我尝试在控制台上获取它时,它看起来像这样:
$("#my-slider")
我得到错误:
未捕获的TypeError:undefined不是函数
我什么时候可以更改元素(哪个事件)?
答案 0 :(得分:5)
此代码:
$(document).delegate('#my-page','pageinit', InitMyPage());
调用 InitMyPage
并将其返回值传递到delegate
,与foo(bar())
调用的方式完全相同> bar
并将其返回值传递给foo
。
要将该功能传递到delegate
,请从中删除()
:
$(document).delegate('#my-page','pageinit', InitMyPage);
// No () here ----------------------------------------^
我得到错误:
Uncaught TypeError: undefined is not a function
我什么时候可以更改元素(哪个事件)?
因为InitMyPage
没有返回任何内容,所以调用它的结果是undefined
,它被传递到delegate
。稍后当事件发生时,显然jQuery Mobile试图调用undefined
(这不是一个函数,导致错误)。我有点惊讶jQuery Mobile并没有注意到这一点而不是试着调用它,但是...... :-)修复另一件事会解决这个问题。