gpt4 book ai didi

jquery-mobile - jQuery Mobile错误-无法在初始化之前调用按钮上的方法;尝试调用方法 'disabled'

转载 作者:行者123 更新时间:2023-12-04 04:53:26 25 4
gpt4 key购买 nike

根据文档(http://jquerymobile.com/demos/1.2.0/docs/api/events.html),应该在执行jQuery移动页面的所有小部件和插件之后调用pageinit事件。因此,我相信我应该能够与该页面上的元素进行交互,而不受事件回调的影响。但是,我监听页面初始化,然后尝试与页面上的按钮进行交互,并且出现以下错误:

cannot call methods on button prior to initialization; attempted to call method 'disabled'



我整理了一个Codepen,向您展示:

http://codepen.io/mattsnider/pen/mvcbD

是什么赋予了? pageinit是否无法按文档所述工作,或者这是一个错误?

最佳答案

您的pageinit事件没有任何问题。错误在于<a>标记。

要消除您得到的错误,您必须对代码进行两项更改:

  • 不是disabled,它的disable
  • 在调用disable方法之前,必须先调用button()方法。因此,您将初始化button元素。

  • 这就是现在的代码:

     $('#ageNext').button().button('disable');

    但是,如果执行此操作,则会出现如下错误:

    Uncaught TypeError: Cannot call method 'addClass' of undefined



    罪魁祸首在于调用 disable方法的代码中

    disable: function() {
    this.element.attr( "disabled", true );
    this.button.addClass( "ui-disabled" ).attr( "aria-disabled", true );
    //^^ Uncaught TypeError: Cannot call method 'addClass' of undefined
    return this._setOption( "disabled", true );
    }

    您在那看到 this.button吗?如果该元素不是真正的按钮,则它将变为 undefined

    如此说来,我已经使 disable仅适用于 input[type=button]<button/>类型的元素。由于某些原因,这在 <a/>模拟按钮上无法正常工作。我通过手动将 ui-disabled类添加到元素来使它起作用,如下所示:

    $(document).on('pageinit', '#age', function (e) {
    $('#ageNext').addClass('ui-disabled');
    });

    演示: http://jsfiddle.net/hungerpain/gzAHT/

    关于jquery-mobile - jQuery Mobile错误-无法在初始化之前调用按钮上的方法;尝试调用方法 'disabled',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17874259/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com