Ajax生成的内容需要双击才能触发单击jQuery

时间:2015-11-13 22:51:33

标签: php jquery ajax x-editable

在我看来(生成ajax):

<a data-name="notes" href="#" data-type="text" data-pk="{!! $v->id !!}" class="vpUpdate">{{ $v->notes}}</a>

在我的jQuery上:

$(document).on('click', '.vpUpdate', function (e) {
    $.fn.editable.defaults.mode = 'popup';
    $('.vpUpdate').editable({
        type: 'text',
        url:'edit-notes',   
        title: 'Edit Notes',
        placement: 'top', 
        send:'always',
        ajaxOptions: {
            dataType: 'json'
        }
    });
});

现在这可以解决所有问题,但只有当我点击它两次然后jQuery触发。

我之前没有使用过这个问题:

$(document).ready(function(){

但是,如果内容是ajax生成,则此方法将不起作用。

另外,假设我在页面上有多个链接使用相同的.vpUpdate类作为触发器,如果​​我双击其中任何一个,任何未来的点击只需要一次点击就可以了。如果我刷新页面,整个循环再次发生。

现在我只是想知道如何在第一次点击时立即触发jQuery而不是双击。

感谢。

1 个答案:

答案 0 :(得分:0)

你必须在$(document).ready函数或$(window).load函数中包含eventhandler的赋值。在文档对象实际存在之前,您将click事件附加到文档对象。

$(document).ready(function(){
    $(document).on('click', '.vpUpdate', function (e) {
        $.fn.editable.defaults.mode = 'popup';
        $('.vpUpdate').editable({
            type: 'text',
            url:'edit-notes',   
            title: 'Edit Notes',
            placement: 'top', 
            send:'always',
            ajaxOptions: {
                dataType: 'json'
            }
        });
    });
});