jQuery:如何在on('save')事件中获取新值,但不是旧值?

时间:2017-06-29 14:29:55

标签: javascript jquery events save

我使用X-editable并尝试在用户更改时捕获元素的值,但我无法捕获更改的值,总是得到前一个。

ex:原始值为'a',第一次:将其更改为'b'但得到'a'。第二次将其改为'c'但得到'b'。

我使用保存事件,因为更改事件不起作用。

page.blade.php

<a class='editable' href="#" name='id' data-pk='{{$item->id}}'>{{$item->id}}</a></th>

脚本

$('.editable').on('save', function(e){
                       console.log(e.target.getAttribute('data-pk')+' '+e.target.text+' '+e.target.getAttribute('name'));});

1 个答案:

答案 0 :(得分:0)

div永远不会触发change事件,因为它为用户可以操作的输入保留。

如果您仍想听取对div的内部HTML所做的更改,您可以尝试以下操作,而这可能在Internet Explorer或旧版浏览器中无效:

$(function() {
    $('div.editable').on('DOMSubtreeModified'), function(e) {
        console.log(e.target.getAttribute('data-pk')+' '+e.target.text+' '+e.target.getAttribute('name'));});
    }
}

注意不要覆盖事件处理程序中div的内容,否则会导致无限循环。我建议您通过阅读MDN文章link

来扩展您对DOMSubtreeModified事件的了解。