jQuery Mobile 可折叠“展开”事件未在 Cordova 应用程序中触发
Posted
技术标签:
【中文标题】jQuery Mobile 可折叠“展开”事件未在 Cordova 应用程序中触发【英文标题】:jQuery Mobile collapsible 'expand' event not firing in Cordova app 【发布时间】: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
【问题讨论】:
【参考方案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
【讨论】:
我仍然无法解释原因,但这段代码也不起作用。我使用了一种解决方法,并在可折叠标题上捕获了点击事件。以上是关于jQuery Mobile 可折叠“展开”事件未在 Cordova 应用程序中触发的主要内容,如果未能解决你的问题,请参考以下文章
jquery mobile - 单击页面后页脚可折叠向下展开
jQuery Mobile - 仅使可折叠小部件的某些部分处于活动状态