编辑到位

时间:2009-07-21 13:40:01

标签: javascript jquery

我有一张这样的表

<tr>
    <td>No.</td>
    <td>Username</td>
    <td>Password</td>
    <td>Valid Until</td>
    <td>Delete</td>
    <td>Edit</td>
</tr>
<tr>
    <td>1</td>
    <td id="1">
              <div class="1u" style="display: none;">Username</div>
              <input type="text" class="inputTxt" value="Username" style="display: block;"/>
            </td>
    <td id="1">
              <div class="1p" style="display: none;">Password</div>
              <input type="text" class="inputTxt" value="Password" style="display: block;"/></td>
    <td>18 Jul 09</td>
    <td><button value="1" class="deleteThis">x</button></td>
    <td class="editRow">Edit</td>
</tr>

单击编辑时,我运行此功能,用输入字段替换文本,所以我想要的是在其他地方单击而不是保存时将其取消回文本。

        $('.editRow').click(function() {
        var row = $(this).parent('tr');

        row.find('.1u').slideUp('fast');
        row.find('.1p').slideUp('fast');
        row.find('.inputTxt').slideDown('fast');

    }).blur(function() { 
        row.find('.inputTxt').slideUp('fast');
        row.find('.1u').slideDown('fast');
        row.find('.1p').slideDown('fast');
    });

使用此函数文本更改为输入字段,但当我单击其他位置时,输入字段不会更改回文本。

谢谢。

3 个答案:

答案 0 :(得分:3)

这个

有一个nice plugin

答案 1 :(得分:0)

您的模糊应用于按钮(td.editRow),但未应用于输入字段。我认为你应该将代码分开,它应该有效。

        $('.editRow').click(function() {
                var row = $(this).parent('tr');

                row.find('.1u').slideUp('fast');
                row.find('.1p').slideUp('fast');
                row.find('.inputTxt')
                    .slideDown('fast')
                    .blur(function() { 
                        row.find('.inputTxt').slideUp('fast');
                        row.find('.1u').slideDown('fast');
                        row.find('.1p').slideDown('fast');
                    });
        });

答案 2 :(得分:0)

刚刚编辑了我的函数,因为插件不适合我的应用程序

        $('.editRow').live('click', function() {
            var row = $(this).parent('td').parent('tr');
            row.find('.1u').slideUp('fast');
            row.find('.1p').slideUp('fast');
            row.find('.inputTxt').slideDown('fast');
            $(this).parent('td').empty().append('<a href=# class=cancel>Cancel</a> / <a href=# class=save>Save</a>');
    });