如何使用jquery调整表单元格的大小?
我有一个2个单元格的表,我想使用jQuery使第一个表的大小可以调整,jqueryui有一个可以使页面上的元素可以调整大小的控件 然而,我可以想象调整表单元格的大小将是一件有趣的事情,特别是因为它们很可能共享一行中的空间。看看这个选项;您可能需要缩小另一个单元格,而另一个单元格则会放大,反之亦然 此外,IEs在处理如何使用jquery调整表单元格的大小?,jquery,jquery-ui,Jquery,Jquery Ui,我有一个2个单元格的表,我想使用jQuery使第一个表的大小可以调整,jqueryui有一个可以使页面上的元素可以调整大小的控件 然而,我可以想象调整表单元格的大小将是一件有趣的事情,特别是因为它们很可能共享一行中的空间。看看这个选项;您可能需要缩小另一个单元格,而另一个单元格则会放大,反之亦然 此外,IEs在处理表元素时臭名昭著,因此YMMV.jQuery UI具有一个可使页面上的元素可调整大小的功能 然而,我可以想象调整表单元格的大小将是一件有趣的事情,特别是因为它们很可能共享一行中的空间。
表元素时臭名昭著,因此YMMV.jQuery UI具有一个可使页面上的元素可调整大小的功能
然而,我可以想象调整表单元格的大小将是一件有趣的事情,特别是因为它们很可能共享一行中的空间。看看这个选项;您可能需要缩小另一个单元格,而另一个单元格则会放大,反之亦然
另外,IEs在处理表元素时是臭名昭著的,所以我不知道有什么方法可以处理“普通”html表。然而,我目前正在使用jQuery插件在我的页面上提供更丰富的数据表。它包括(除其他外)单击并拖动列宽的大小调整。我不知道有什么方法可以对“普通”html表执行此操作。然而,我目前正在使用jQuery插件在我的页面上提供更丰富的数据表。它包括(除其他外)单击和拖动调整列宽的大小。我还建议使用jQuery UI Resizeable,并进行一些增强。我可以使用有效的HTML运行它,在调整大小时更新表的COLGROUP区域。我描述了完整的解决方案
简短的建议是:
1) HTML表格在其COLGROUP区域中指定初始宽度,并具有CSS属性表格布局:固定。
2) 用jQuery UI的.resizeable()装饰元素。
3) 开始调整大小时:找到活动TH的匹配COL元素并记住原始宽度。
4) 调整大小时:计算调整大小增量并更新(增加/减少)选定的列元素。这将在每个浏览器中调整整个列的大小
$(".resizable th").resizable({
handles: "e",
// set correct COL element and original size
start: function(event, ui) {
var colIndex = ui.helper.index() + 1;
colElement = table.find("colgroup > col:nth-child(" +
colIndex + ")");
// get col width (faster than .width() on IE)
colWidth = parseInt(colElement.get(0).style.width, 10);
originalSize = ui.size.width;
},
// set COL width
resize: function(event, ui) {
var resizeDelta = ui.size.width - originalSize;
var newColWidth = colWidth + resizeDelta;
colElement.width(newColWidth);
// height must be set in order to prevent IE9 to set wrong height
$(this).css("height", "auto");
}
});
我还建议使用带有一些增强功能的jQueryUI。我可以使用有效的HTML运行它,在调整大小时更新表的COLGROUP区域。我描述了完整的解决方案
简短的建议是:
1) HTML表格在其COLGROUP区域中指定初始宽度,并具有CSS属性表格布局:固定。
2) 用jQuery UI的.resizeable()装饰元素。
3) 开始调整大小时:找到活动TH的匹配COL元素并记住原始宽度。
4) 调整大小时:计算调整大小增量并更新(增加/减少)选定的列元素。这将在每个浏览器中调整整个列的大小
$(".resizable th").resizable({
handles: "e",
// set correct COL element and original size
start: function(event, ui) {
var colIndex = ui.helper.index() + 1;
colElement = table.find("colgroup > col:nth-child(" +
colIndex + ")");
// get col width (faster than .width() on IE)
colWidth = parseInt(colElement.get(0).style.width, 10);
originalSize = ui.size.width;
},
// set COL width
resize: function(event, ui) {
var resizeDelta = ui.size.width - originalSize;
var newColWidth = colWidth + resizeDelta;
colElement.width(newColWidth);
// height must be set in order to prevent IE9 to set wrong height
$(this).css("height", "auto");
}
});
如果你在这里重新发布部分博客,而不是仅仅发布链接,那就更好了。如果你在这里重新发布部分博客,而不是仅仅发布链接,那就更好了。