无法以编程方式关闭jQuery移动弹出窗口中的可折叠

时间:2015-03-20 16:22:53

标签: javascript jquery jquery-mobile

我的项目有一个包含多个可折叠元素的弹出窗口。首次显示弹出窗口时,折叠可折叠元素。用户展开一个或多个元素,然后执行操作。

问题是我想在用户执行操作后重置弹出窗口,以便下次弹出窗口显示时关闭所有可折叠的窗口。我试图触发崩溃,如下所示。我已经阅读了几篇帖子,表明这个触发器应该可以工作,但我没有成功。下面包括一个jsfiddle。 jsfiddle中的示例只有一个可折叠元素,但显示了问题....

非常感谢您的帮助和建议。

 $('#manageChecklistPopup').on('popupafterclose', function(event) {
        // collapse not working :(
        console.log('popup has closed.');

        $('.ui-collapsible').trigger('collapse');

    });

https://jsfiddle.net/qyg53ejy/

2 个答案:

答案 0 :(得分:3)

您需要拨打 collapse method ,而不是触发事件:

$('#createChecklist').collapsible( "collapse" );
  

更新了 FIDDLE

答案 1 :(得分:1)

您可以执行以下操作之一来关闭可折叠的内容:

提供了调用崩溃方法但jQuery ui

$('#createChecklist').collapsible( "collapse" );

或触发点击(您必须首先检查其是否打开,否则点击将打开它):

$('#createChecklist .ui-collapsible-heading-toggle').trigger('click');

删除课程:

$('#createChecklist .ui-collapsible-content').addClass('ui-collapsible-content-collapsed');

DEMO:https://jsfiddle.net/qyg53ejy/2/