在父 td 之外扩展 textarea
Expand textarea outside parent td
我有一个 table,我希望能够双击单元格来编辑它们。尽管我只显示实际 table 单元格中的前几个字符,但我想 show/edit 在 textarea 元素内双击全文。
文本区域元素将保持隐藏状态,直到 table 单元格被双击,然后它在 table 单元格的顶部可见,直到 blur() 事件再次隐藏。如果有更好的方法,请告诉我。
$(function () {
$('td.nota').dblclick(function (e) {
e.stopPropagation(); //stop the propagation of the event here
$(this).children().css("display","block");
$(this).children().focus();
//alert('test');
});
});
$('td.nota').children().blur(function(){
$(this).css("display","none");
});
body {
margin: 50px 25px;
}
table {
width: auto !important;
}
.edit-box {
display:none;
float: left;
margin-left: -8px;
margin-top: -28px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<tbody>
<tr>
<td class="text-center"><input type="checkbox" name="selected[]" value="761">
</td>
<td class="text-left nota" id="761" style="max-width: 20ch;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">Lorem ipsum dolor sit amet, consectetur adipiscing elit<textarea class="edit-box" rows="2">Lorem ipsum dolor sit amet, consectetur adipiscing elit</textarea></td>
</tr>
<tr>
<td class="text-center"><input type="checkbox" name="selected[]" value="760">
</td>
<td class="text-left nota" id="760" style="max-width: 20ch;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">Lorem ipsum dolor sit amet, consectetur adipiscing elit<textarea class="edit-box" rows="2">Lorem ipsum dolor sit amet, consectetur adipiscing elit</textarea></td>
</tr>
</tbody>
</table>
</div>
此 fiddle 中的相同代码:https://jsfiddle.net/prxbl/1hw2f0b9/29/
当前问题:
- Textarea 元素应该扩展到父 td 之外,在所有元素之上,而不破坏 table 布局。
- Textarea 元素不应该是透明的,它应该遮住后面的元素。
非常感谢任何解决这些问题的帮助。
问题1和2都可以通过在CSS中的class.edit-box中添加"position: absolute;"来解决。现在 textarea 元素可以扩展到父容器之外。
我有一个 table,我希望能够双击单元格来编辑它们。尽管我只显示实际 table 单元格中的前几个字符,但我想 show/edit 在 textarea 元素内双击全文。
文本区域元素将保持隐藏状态,直到 table 单元格被双击,然后它在 table 单元格的顶部可见,直到 blur() 事件再次隐藏。如果有更好的方法,请告诉我。
$(function () {
$('td.nota').dblclick(function (e) {
e.stopPropagation(); //stop the propagation of the event here
$(this).children().css("display","block");
$(this).children().focus();
//alert('test');
});
});
$('td.nota').children().blur(function(){
$(this).css("display","none");
});
body {
margin: 50px 25px;
}
table {
width: auto !important;
}
.edit-box {
display:none;
float: left;
margin-left: -8px;
margin-top: -28px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<tbody>
<tr>
<td class="text-center"><input type="checkbox" name="selected[]" value="761">
</td>
<td class="text-left nota" id="761" style="max-width: 20ch;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">Lorem ipsum dolor sit amet, consectetur adipiscing elit<textarea class="edit-box" rows="2">Lorem ipsum dolor sit amet, consectetur adipiscing elit</textarea></td>
</tr>
<tr>
<td class="text-center"><input type="checkbox" name="selected[]" value="760">
</td>
<td class="text-left nota" id="760" style="max-width: 20ch;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">Lorem ipsum dolor sit amet, consectetur adipiscing elit<textarea class="edit-box" rows="2">Lorem ipsum dolor sit amet, consectetur adipiscing elit</textarea></td>
</tr>
</tbody>
</table>
</div>
此 fiddle 中的相同代码:https://jsfiddle.net/prxbl/1hw2f0b9/29/
当前问题:
- Textarea 元素应该扩展到父 td 之外,在所有元素之上,而不破坏 table 布局。
- Textarea 元素不应该是透明的,它应该遮住后面的元素。
非常感谢任何解决这些问题的帮助。
问题1和2都可以通过在CSS中的class.edit-box中添加"position: absolute;"来解决。现在 textarea 元素可以扩展到父容器之外。