首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何恢复可编辑单元格的宽度?

如何恢复可编辑单元格的宽度?
EN

Stack Overflow用户
提问于 2017-01-25 15:45:21
回答 1查看 27关注 0票数 0

我有可编辑的单元格,当我在表格单元格内单击时,单元格的宽度会变宽,但当我离开单元格时,我希望表格恢复到正常宽度。因为否则标志离价格太远了。

代码语言:javascript
复制
    // Editable Cells

    $(document).on('click', '.editable', function(event) {
            if ($(this).children("input").length > 0)
                return false;
            var tdObj = $(this);
            var preText = tdObj.html();
            var inputObj = $("<input type='text' />");
            tdObj.html("");
            inputObj.width(tdObj.width())
                .height(tdObj.height())
                .css({
                    border: "0px",
                    width: "30%",
                })
                .val(preText)
                .appendTo(tdObj)
                .trigger("focus")
                .trigger("select");
            inputObj.keyup(function (event) {
                if (13 == event.which) { // press ENTER-key
                    var text = $(this).val();
                    tdObj.html(text);
                } else if (27 == event.which) { // press ESC-key
                    tdObj.html(preText);
                }
            });
            inputObj.click(function () {
                return false;
            });
        });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th >Price</th>
    <th>Lastname</th> 
  </tr>
  <tr>
    <td>Jill</td>
    <td><span class="editable">50</span> €</td>
    <td>Smith</td> 
  </tr>
  <tr>
    <td>Eve</td>
    <td><span class="editable">50</span> €</td>
    <td>Jackson</td> 
  </tr>
</table>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-25 16:11:07

将以下代码放入您的click函数:

代码语言:javascript
复制
inputObj.blur(function(event) {
    tdObj.html(preText);
});

代码:

代码语言:javascript
复制
$(document).on('click', '.editable', function(event) {
    if ($(this).children("input").length > 0)
        return false;
    var tdObj = $(this);
    var preText = tdObj.html();
    var inputObj = $("<input type='text' />");
    tdObj.html("");
    inputObj.width(tdObj.width())
        .height(tdObj.height())
        .css({
            border: "0px",
            width: "30%",
        })
        .val(preText)
        .appendTo(tdObj)
        .trigger("focus")
        .trigger("select");
    inputObj.keyup(function (event) {
        if (13 == event.which) { // press ENTER-key
            var text = $(this).val();
            tdObj.html(text);
        } else if (27 == event.which) { // press ESC-key
            tdObj.html(preText);
        }
    });
    inputObj.blur(function(event) {
        tdObj.html(preText);
    });
    inputObj.click(function () {
        return false;
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41846009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档