如何使用jquery调整表单元格的大小?

如何使用jquery调整表单元格的大小?,jquery,jquery-ui,Jquery,Jquery Ui,我有一个2个单元格的表,我想使用jQuery使第一个表的大小可以调整,jqueryui有一个可以使页面上的元素可以调整大小的控件 然而,我可以想象调整表单元格的大小将是一件有趣的事情,特别是因为它们很可能共享一行中的空间。看看这个选项;您可能需要缩小另一个单元格,而另一个单元格则会放大,反之亦然 此外,IEs在处理表元素时臭名昭著,因此YMMV.jQuery UI具有一个可使页面上的元素可调整大小的功能 然而,我可以想象调整表单元格的大小将是一件有趣的事情,特别是因为它们很可能共享一行中的空间。

我有一个2个单元格的表,我想使用jQuery使第一个表的大小可以调整,jqueryui有一个可以使页面上的元素可以调整大小的控件

然而,我可以想象调整表单元格的大小将是一件有趣的事情,特别是因为它们很可能共享一行中的空间。看看这个选项;您可能需要缩小另一个单元格,而另一个单元格则会放大,反之亦然

此外,IEs在处理
元素时臭名昭著,因此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");
 }
});

如果你在这里重新发布部分博客,而不是仅仅发布链接,那就更好了。如果你在这里重新发布部分博客,而不是仅仅发布链接,那就更好了。