更改jquery mobile的init页面上的元素

Hod*_*lom 0 javascript jquery html5 slider jquery-mobile

我尝试在init页面上更改滑块属性:

$(document).delegate('#my-page','pageinit', InitMyPage());

function InitMyPage() {
    var today = new Date();
    $("#my-slider").prop({
        min: 1,
        max: 50
    }).slider("refresh");
} 
Run Code Online (Sandbox Code Playgroud)

看起来在页面init $("#my-slider")仍然未知.

当我试图在控制台上获取它时,它看起来像这样:

$("#year-slider")
[]
Run Code Online (Sandbox Code Playgroud)

我得到错误:

未捕获的TypeError:undefined不是函数

我什么时候可以更改元素(哪个事件)?

T.J*_*der 5

这段代码:

$(document).delegate('#my-page','pageinit', InitMyPage());
Run Code Online (Sandbox Code Playgroud)

调用 InitMyPage并将其返回值传递给delegate,完全按照foo(bar()) 调用 方式bar并将其返回值传递给foo.

要将函数传递到其中delegate,请()从中删除from:

$(document).delegate('#my-page','pageinit', InitMyPage);
// No () here ----------------------------------------^
Run Code Online (Sandbox Code Playgroud)

我得到错误:

Uncaught TypeError: undefined is not a function

我什么时候可以更改元素(哪个事件)?

那是因为InitMyPage没有返回任何东西,所以调用它的结果是undefined,它被传递进去delegate.稍后当事件发生时,显然jQuery Mobile试图调用它undefined(这不是一个函数,导致错误).我有点惊讶jQuery Mobile并没有注意到这一点而不是试着调用它,但是...... :-)修复另一件事会解决这个问题.