編集:解決しました。ページが最初にロードされると、レイアウトされた css ファイルを使用してデータテーブルが形成されます。ただし、javascript を呼び出すと、データテーブルが再構築され、参照した CSS ファイルが無視されました。そのため、テキストのサイズに合わせてテーブルを自動的に縮小していました。これは、データテーブルの実際の作成で bAutoWidth = false を設定することで回避されました。
助けてくれたみんなに感謝します!
だから私は次のようなデータテーブルを持っています。
<div class="datatable" style="display:none;">
<div class="row">
<table class="display" id="testtable">
<thead>
<tr>
<th>First column</th>
<th>Second</th>
<th>Third</th>
</tr>
</thead>
<tbody id="selectable">
<tr class="gradeU">
<td align="left">First column info</td>
<td align="left">second</td>
<td>Third</td>
</tr>
</tbody>
</table>
</div>
</div>
したがって、上記はデータテーブルです。ユーザーがボタンの上にカーソルを置いたときにのみ表示したいため、テーブル自体が非表示になっていることがわかります。ユーザーがボタンにカーソルを合わせると、次のコードが関数から呼び出されます。
$(".datatable").show();
これは機能しますが、CSS が壊れます。データテーブルは非常に押しつぶされ、本来あるべき幅の約 4 分の 1 しかありません。呼び出される関数で幅を大きく設定しようとしましたが、うまくいきません。私はそれが次のコードと関係があることを知っています
style="display:none;"
これを取り出すと、テーブルは正常に表示されますが、関数が呼び出されるまで非表示にする必要があります。
私は通常の $(element).style.visibilty を試しましたが、何も違いがないようです。テーブルは頑固に正しいサイズに移動することを拒否しています。どんな助けでも大歓迎です、そして前もって感謝します。
編集: 以下は、テーブルと TD の CSS です。
table.display {
margin: 10px;
padding: 5px;
clear: both;
width: 98%;
overflow: auto;
/* text-align: center;*/
height: auto;
}
table.display td {
padding: 5px 5px;
}
table.display td.center {
text-align: center;
}
編集: テーブルの違いを示すために 2 つの画像をアップロードしました。
http://imageshack.us/photo/my-images/840/correecttable.png/
隠していない時のテーブルです。
http://imageshack.us/photo/my-images/822/incorrecttable.png/
これは、非表示にしてから jQuery を使用して表示したときのテーブルです。