我正在使用 jquery mobile 我有一个可折叠的集合,其中包含三个可折叠的项目,并且想要在扩展时从 javascript 代码中更改项目的主题。并在折叠时将其恢复为正常主题
注意:我不想更改整个可折叠设置项。只是折叠或展开的。
我正在使用 jquery mobile 我有一个可折叠的集合,其中包含三个可折叠的项目,并且想要在扩展时从 javascript 代码中更改项目的主题。并在折叠时将其恢复为正常主题
注意:我不想更改整个可折叠设置项。只是折叠或展开的。
不幸的是,collapsible
它不接受动态更改主题,因此,您需要以编程方式添加/删除类。
jQuery 移动
$(document).on('expand collapse', '#col1, #col2, #col3', function (e) {
if (e.type == 'expand') {
var oldclass = 'ui-btn-up-d ui-body-d';
var newclass = 'ui-btn-up-e ui-body-e';
$(this).find('a').removeClass(oldclass + ' ui-btn-hover-d').addClass(newclass + ' ui-btn-hover-e');
$(this).find('.ui-collapsible-content').removeClass(oldclass).addClass(newclass);
}
if (e.type == 'collapse') {
var oldclass = 'ui-btn-up-e ui-body-e';
var newclass = 'ui-btn-up-d ui-body-d';
$(this).find('a').removeClass(oldclass + ' ui-btn-hover-e').addClass(newclass + ' ui-btn-hover-d');
$(this).find('.ui-collapsible-content').removeClass(oldclass).addClass(newclass);
}
});
HTML
<div data-role="collapsible-set" data-theme="c" data-content-theme="d">
<div data-role="collapsible" id="col1">
<h3>Section 1</h3>
<p>I'm the collapsible content for section 1</p>
</div>
<div data-role="collapsible" id="col2">
<h3>Section 2</h3>
<p>I'm the collapsible content for section 2</p>
</div>
<div data-role="collapsible" id="col3">
<h3>Section 3</h3>
<p>I'm the collapsible content for section 3</p>
</div>
</div>
看到这个小提琴:
jQuery mobile 不支持直接在collapsibles 中更改主题,因此您必须使用手动删除类然后添加新类的方法。
var oldclass = 'ui-btn-up-b ui-body-b';
var newclass = 'ui-btn-up-d ui-body-d';
$('[data-role=collapsible]').find('a').toggleClass(oldclass + ' ui-btn-hover-b').toggleClass(newclass + ' ui-btn-hover-d');
$('[data-role=collapsible]').find('.ui-collapsible-content').toggleClass(oldclass).toggleClass(newclass);
链接:http: //jsfiddle.net/cDmdh/
尝试这个。
$( ".selector" ).collapsible({ collapsed: false });