我尝试更改页面初始化上的 slider 属性:
$(document).delegate('#my-page','pageinit', InitMyPage());
function InitMyPage() {
var today = new Date();
$("#my-slider").prop({
min: 1,
max: 50
}).slider("refresh");
}
页面 init $("#my-slider")
看起来仍然未知。
当我尝试在控制台上获取它时,它看起来像这样:
$("#year-slider")
[]
我收到错误:
Uncaught TypeError: undefined is not a function
我什么时候可以更改元素(哪个事件)?
最佳答案
这段代码:
$(document).delegate('#my-page','pageinit', InitMyPage());
调用 InitMyPage
并将其返回值传递给 delegate
,与 foo(bar ())
调用 bar
并将其返回值传递给 foo
。
要将函数传递给 delegate
,请删除其后面的 ()
:
$(document).delegate('#my-page','pageinit', InitMyPage);
// No () here ----------------------------------------^
And I get error:
Uncaught TypeError: undefined is not a function
When can I change the elements (which event)?
这是因为 InitMyPage
没有返回任何内容,因此调用它的结果是 undefined
,该结果被传递给 delegate
。稍后当事件发生时,显然 jQuery Mobile 会尝试调用 undefined
(这不是一个函数,会导致错误)。我有点惊讶 jQuery Mobile 没有注意到这一点,也没有尝试调用它,但是...:-) 修复其他问题就可以解决这个问题。
关于javascript - 更改 jquery mobile 页面 init 上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23988922/