【问题标题】:jQuery Mobile collapsible 'expand' event not firing in Cordova appjQuery Mobile 可折叠“展开”事件未在 Cordova 应用程序中触发
【发布时间】:2017-03-15 11:12:17
【问题描述】:

我有一个使用 jQuery Mobile 1.4.5 版构建的 Cordova 应用程序

在这个应用程序中有一个页面,其中有 4 个可折叠项,其中包含多个可折叠项。

每次展开嵌套的可折叠项时,我都需要触发一段代码。为此,我使用了一个 CSS 类并为这些可折叠对象绑定了一个展开事件侦听器。

当我用它制作一个 jsFiddle 时,但在应用程序上它不会运行并且不会在断点处停止(使用 chrome 远程调试),也没有任何类型的错误。

我的 Javascript 看起来像这样:

    $( ".msg_head" ).on( "collapsibleexpand", function( event, ui ) {
        alert('expand');
    } );

小提琴可以在这里查看:fiddle

【问题讨论】:

    标签: javascript jquery cordova jquery-mobile jquery-events


    【解决方案1】:

    我已经使用这个 js 代码更新了fiddle 一个可行的解决方案:

    $(document).on( "collapsibleexpand", ".msg_head",function( event, ui ) {
        alert('expand');
    } );
    

    【讨论】:

      【解决方案2】:

      jcarrera 的答案将起作用(事件委托)。但是从 jQuery Mobile 的角度来看,问题在于您没有在 jQM pagecreate 事件中创建处理程序。所以可折叠的还不存在。将 pagecreate 用于包含可折叠项的页面,如下所示:

      $(document).on("pagecreate","#your-page-id", function(){ 
        $( ".msg_head" ).on( "collapsibleexpand",  function( event, ui ) {
          alert('expand');
        } );
      });  
      

      更新FIDDLE

      【讨论】:

      • 我仍然无法解释原因,但这段代码也不起作用。我使用了一种解决方法,并在可折叠标题上捕获了点击事件。
      猜你喜欢
      • 2012-01-14
      • 2013-06-12
      • 2018-08-21
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 2016-09-07
      相关资源
      最近更新 更多