我正在使用jquery mobile 我有一个可折叠的套装,其中包含三个可折叠的物品 并希望在扩展时从javascript代码更改项目的主题。 当它崩溃时将其恢复为正常主题
注意:我不想更改整个可折叠设置项目。 只是折叠或扩展的。
答案 0 :(得分:5)
不幸的是,collapsible
不接受动态更改主题,因此,您需要以编程方式添加/删除类。
<强> Demo 强>
jQuery Mobile
$(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>
答案 1 :(得分:2)
看到这个小提琴:
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);
答案 2 :(得分:0)
试试这个。
$( ".selector" ).collapsible({ collapsed: false });