javascript - 可编辑表格(单击时删除文本并添加文本字段)触发次数过多

标签 javascript jquery html

所以我有一张我想要编辑的表格。为此,我有一个简单的事件监听器,它从 td 元素中删除文本,并附加一个输入字段,该文本作为值。一旦文本字段失去焦点,该文本字段的值就会附加到 td 中。

问题是当用户尝试突出显示并删除文本(单击)时会触发它。

我更改了选择器以排除特定输入字段的类,但没有效果。

Javascript:

$(function() {
    $('.text_field:not(.remove_text)').click(function() {

        var text   = $(this).text().trim(),
            length = text.length;

         $(this).empty()
                .append("<input type='text' class='remove_text' size='"+length+"' value='"+text+"' />")
                .find('.remove_text')
                .focusout(function() {
                    $(this).closest('td').empty().append($(this).val());
                })
                .focus();  

    });
});

这是 fiddle 来表达我的意思。

选择器有问题吗?

最佳答案

一个简单的解决方案是添加一些逻辑,以防止表单元格已包含输入元素时清空。

$('.text_field:not(.remove_text)').click(function() {
    if( $(this).find('input').length > 0 ) {                        
        return;
    }
    // your existing code
}

这是一个工作示例 JS Fiddle

关于javascript - 可编辑表格(单击时删除文本并添加文本字段)触发次数过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25874679/

相关文章:

javascript - 当我将鼠标悬停在一行上时,如何更改两个表行的 CSS?

php - Ajax 自动保存多个字段

jquery - 使用 AutoPostBack=true 防止 asp.net TextBox 的 OnTextChanged 事件

javascript - html/Javascript : Add Attribute to an HTML Control

javascript - 将 <div> 附加到正文中一次

javascript - 我想将 reviewsmaker.com iframe 集成到网站主页以显示评论,但它在页面加载期间被重定向到他们的网站

javascript - 如何使用户文本字段值在html中 float

javascript - 其他类型的网络脚本语言?

javascript - 使用 jquery 延迟加载分页数据表中的值

jQuery 添加特定时间的类