我使用的是jquery mobile,我有一个可折叠的集合,其中包含三个可折叠的项目,并希望在项目展开时从javascript代码中更改项目的主题。并在折叠时将其恢复为正常主题
注意:我不想改变整个可折叠的集合项目。只有折叠或展开的那个。
发布于 2013-06-18 18:11:31
不幸的是,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>
发布于 2013-06-18 18:04:40
请看这个小提琴:
jQuery mobile不支持直接在可折叠中更改主题,因此您必须使用手动方法删除类,然后添加新类。
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);
发布于 2013-12-20 14:42:45
https://stackoverflow.com/questions/17174675
复制