问题
I have an accordion table working fine on all devices and browsers but not working at all in ios mobile. the solutions I found are only for div's and using href but in my case I really need to use tables with several columns. Here you have the code http://jsfiddle.net/k3yrnsux/ I'm using Boostrap 3.
Can someone help?
<div class="table-content">
<table id="table-collapse" class="table table-responsive table-hover table-striped" style="border-collapse:collapse;">
<thead>
<tr>
<th>#</th>
<th>Date</th>
<th>Description</th>
<th>Credit</th>
<th>Debit</th>
<th>Balance</th>
</tr>
</thead>
<tbody>
<tr data-toggle="collapse" data-target="#demo1" data-parent="table-collapse" class="accordion-toggle">
<td>1</td>
<td>05 May 2013</td>
<td>Credit Account</td>
<td class="text-success">$150.00</td>
<td class="text-error"></td>
<td class="text-success">$150.00</td>
</tr>
<tr>
<td colspan="6" class="hiddenRow">
<div class="accordian-body collapse" id="demo1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque malesuada ligula non semper facilisis. Sed mattis libero vel convallis tincidunt. Sed tempor auctor ultrices.</div>
</td>
</tr>
<tr data-toggle="collapse" data-target="#demo2" class="accordion-toggle accordion-group">
<td>2</td>
<td>05 May 2013</td>
<td>Credit Account</td>
<td class="text-success">$11.00</td>
<td class="text-error"></td>
<td class="text-success">$161.00</td>
</tr>
<tr>
<td colspan="6" class="hiddenRow">
<div id="demo2" class="accordian-body collapse">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque malesuada ligula non semper facilisis. Sed mattis libero vel convallis tincidunt. Sed tempor auctor ultrices.</div>
</td>
</tr>
<tr data-toggle="collapse" data-target="#demo3" class="accordion-toggle">
<td>3</td>
<td>05 May 2013</td>
<td>Credit Account</td>
<td class="text-success">$500.00</td>
<td class="text-error"></td>
<td class="text-success">$661.00</td>
</tr>
<tr>
<td colspan="6" class="hiddenRow">
<div id="demo3" class="accordian-body collapse">
<table class="table table-responsive table-striped table-hover">
<thead>
<tr>
<th>#</th>
<th>Date</th>
<th>Description</th>
<th>Credit</th>
<th>Debit</th>
<th>Balance</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>05 May 2013</td>
<td>Credit Account</td>
<td class="text-success">$150.00</td>
<td class="text-error"></td>
<td class="text-success">$150.00</td>
</tr>
<tr>
<td>1</td>
<td>05 May 2013</td>
<td>Credit Account</td>
<td class="text-success">$150.00</td>
<td class="text-error"></td>
<td class="text-success">$150.00</td>
</tr>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
function (o) {
var s = t(this);
s.attr("data-target") || o.preventDefault();
var n = e(s),
a = n.data("bs.collapse"),
r = a ? "toggle" : t.extend({}, s.data(), {
trigger: this
});
i.call(n, r)
}
.hiddenRow {
padding:0px!important;
}
.hiddenRow div {
margin: 20px;
white-space:normal;
}
回答1:
I've run into issues with iOS and bootstrap as well.
For some reason if you manually attach the click event to the tr elements it works without and issue but you can not pass the additional attribute to the selector.
http://jsfiddle.net/8x3ub2xz/
Seems to only have trouble attaching the click event when there are additional attributes passed to the selector? No idea why.
THIS WORKS
$(document).ready(function () {
$("tr").click(function () {
var sender = $(this);
var targetId = $(sender.attr("data-target"))
targetId.toggle().collapse();
});
});
THIS DOES NOT
$(document).ready(function () {
$("tr [data-toggle='collapse']").click(function () {
var sender = $(this);
var targetId = $(sender.attr("data-target"))
targetId.toggle().collapse();
});
});
来源:https://stackoverflow.com/questions/27567880/bootstrap3-accordion-table-not-working-on-ios-mobile