如何在折叠之前从 jQuery Mobile 获取 .ui-collapsible 的“折叠”事件

Posted

技术标签:

【中文标题】如何在折叠之前从 jQuery Mobile 获取 .ui-collapsible 的“折叠”事件【英文标题】:How to get an "collapse" event of a .ui-collapsible from jQuery Mobile before it collapses 【发布时间】:2014-04-26 07:20:49 【问题描述】:

我愿意:

$( ".ui-collapsible" ).on("collapse", onCollapse );

然后:

var onCollapse = function(e) 
    // close all open input fields on collapse
    $(this).find( ".closeable [data-role='button']" )
           .filter(":visible")
           .trigger( "click" , "enter" );
;

但是可折叠元素已经折叠了,所以没有可见元素了。

有没有办法在实际崩溃之前得到这个事件?

【问题讨论】:

否,除非您扩展小部件以支持新事件。您使用的是哪个版本的 jQuery Mobile?您是否也真的绑定到collapse 而不是collapsiblecollapse @FrédéricHamidi 我要崩溃了。无论如何谢谢。 另一种选择是手动折叠/展开它们,点击可折叠的标题。 您可以发布您的 html/可折叠标记示例吗? @Omar,我找到了解决方法。我将属性 visible="true" 添加到一个打开的元素,并像这样更改代码:var onCollapse = function(e) // close all open input fields on collapse $(this).find( ".closeable[visible='true'] [data-role='button']" ) .trigger( "click" , "enter" ); ; 【参考方案1】:

我实际上并没有检查足够多的优惠来确定它是否在崩溃之前触发,但您仍然可以尝试:

 $('#my-collaspible').bind('expand', function () 
    alert('Expanded');
 ).bind('collapse', function () 
    alert('Collapsed');
 );

http://jsfiddle.net/6txWy/2062/

来自JQuery-Mobile collapsible expand/collapse event

【讨论】:

以上是关于如何在折叠之前从 jQuery Mobile 获取 .ui-collapsible 的“折叠”事件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery Mobile 过滤可折叠集?

如何将“slideup()”和“slidedown()”函数应用于可折叠的 Jquery Mobile 1.4.5?小提琴手

JQuery-Mobile 可折叠展开/折叠事件

使用单独的按钮在 JQUERY Mobile 中触发可折叠

jQuery-Mobile可折叠slideDown效果

设置jquery-mobile展开后可折叠高度