ブートストラップに x-editable を使用して、クライアント データで編集可能なテーブル フィールドを作成します。私が抱えている問題は、時には数百文字の長さのコメント用のフィールドがあることです。これにより、空白:nowrap を使用する必要があるため、テーブルが見苦しく見えます。
これを回避するために、jQuery を使用してコメントのセクションのみを表示し、ページの読み込み時に編集可能なフィールドを非表示にしましたが、カーソルを合わせると展開しました。私が抱えている問題は、他のすべてのフィールドが x-editable でオンフォーカスで選択可能であり、このフィールドも選択可能にしたいということです。フィールドにカーソルを合わせると問題なく Tab で移動できますが、Tab で移動して編集可能なフィールドをトリガーする方法に興味があります。
もう1つの解決策は、php出力の文字数を制限するか、jQueryでそれらを非表示にして、Tabキーを押したときにフィールドを拡張することですが、その方法がわかりません。:focus と document.activeElement() を調べてみましたが、それらを機能させる方法が見つかりませんでした。
サンプルコードをjsfiddleに追加しました。の前に入力フィールドを追加しました。これは、テーブル x-editable を Tab で移動すると、フィールドが入力要素になるためです。編集可能なフィールドがアクティブな場合はタブで移動できますが、そうでない場合はフィールドがスキップされ、トリガーされません。
これは、編集可能なフィールドを保持する のサンプルです
<td id="comment" style="border:1px solid #000000;">
<p id="short_comment">Short comment</p>
<p id="collapse"><a href="#" id="editable">A much longer comment that will appear</a></p>
</td>
これはjQueryのサンプルです
$('#collapse').hide();
$('#comment').on('mouseenter', function(f) {
$('#short_comment').hide();
$('#collapse').show();
$("#collapse").on("show",function(event){
$('#comment').width('200px');
});
$("#collapse").on("hide",function(event){
$('#comment').width('50px');
});
});
$('#comment').on('mouseleave', function(f) {
$('#short_comment').show();
$('#collapse').hide();
});