on事件不要在replaceWith()之后触发

时间:2017-02-22 09:08:12

标签: javascript jquery

当我点击<span>时,范围会变为输入字段

$('table td').on('click', 'span', function() {
    var $el = $(this);

    var $input = $('<input/>').val($el.text()).attr('class', 'form-control');
    $el.replaceWith($input);

    var save = function() {
        var $p = $ ('<span>').text( $input.val() );
        $input.replaceWith($p);
    };

    $input.one('blur', save).focus();
});

$('input').on('change', function() {
    var target = $(this);

    $.ajax({
        url: 'url',
        data: {
            value: target.val(),
            ruleId: target.data('rule'),
            date: target.data('date')
        },
        type: 'POST',
        success: function(data) {
            console.log('updated');
        }
    });
});

之后,我需要在输入改变时抓住

但它不再触发$('input').on('change', function() {功能......

2 个答案:

答案 0 :(得分:3)

你可以尝试使用它吗

$(document).on('change','input',function(){
 // your code here
}

希望帮助

答案 1 :(得分:1)

将事件绑定到文档而不是元素将解决您的问题。

$(document).on('change', '.item', function(event) {

参考jQuery doc