use*_*382 4 javascript jquery onclick twitter-bootstrap-3
这对我来说似乎很棘手.我想在单击div中的类"panel-titel"时将引导列类从"col-md-2"更改为"col-md-3".当用户点击另一个"面板标题"时,我希望那个包含"col-md-2"的那个更改为"col-md-3"并且另一个div的第一个类更改将被还原.这甚至可能吗?谢谢.
<div class="col-md-2">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#timeline1">
15.3.2014
</a>
</h4>
</div>
<div id="timeline1" class="panel-collapse collapse">
<div class="panel-body">
<a href="#" class="thumbnail">
<img class="img-responsive" src="http://placehold.it/250x160" alt="Thumb11">
</a>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Ter*_*rry 12
这是一个可能有用的策略:监听click事件.panel-title,并将父类更改md-col-3为单击它时,还将此父级的所有兄弟类的类还原为md-col-2.这是代码:
$('.panel-title').click(function() {
$(this)
// Find parent with the class that starts with "col-md"
// Change class to "col-md-3"
.closest('[class^="col-md"]')
.removeClass('col-md-2')
.addClass('col-md-3')
// Find siblings of parent with similar class criteria
// - if all siblings are the same, you can use ".siblings()"
// Change class to "col-md-2"
.siblings('[class^="col-md"]')
.removeClass('col-md-3')
.addClass('col-md-2');
});
Run Code Online (Sandbox Code Playgroud)
请注意,如果父项的所有兄弟姐妹都是相同的,您可以在没有.siblings('[class^="col-md"]')选择器的情况下进行操作,.siblings()而是使用.
一种更简单的方法来查看上面的代码,没有注释.在jQuery中链接以跟踪当前正在操作的对象时,缩进很有用:
$('.panel-title').click(function() {
$(this)
.closest('[class^="col-md"]')
.removeClass('col-md-2').addClass('col-md-3')
.siblings('[class^="col-md"]')
.removeClass('col-md-3').addClass('col-md-2');
});
Run Code Online (Sandbox Code Playgroud)
这是一个概念验证小提琴:http://jsfiddle.net/teddyrised/zwpCF/
[更新]更好:如果你想保存几个字节,你可以使用.toggleClass():
$('.panel-title').click(function() {
$(this)
.closest('[class^="col-md"]')
.toggleClass('col-md-2 col-md-3')
.siblings('[class^="col-md"]')
.removeClass('col-md-3')
.addClass('col-md-2');
});
Run Code Online (Sandbox Code Playgroud)
请看这里的小提琴:http://jsfiddle.net/teddyrised/zwpCF/1/