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

时间:2014-06-02 07:02:18

标签: javascript jquery html5 jquery-mobile slider

我尝试在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不是函数

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

1 个答案:

答案 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并没有注意到这一点而不是试着调用它,但是...... :-)修复另一件事会解决这个问题。