Javascript jqueryonclick需要在触发函数之前单击两次

Javascript jqueryonclick需要在触发函数之前单击两次,javascript,jquery,ajax,jquery-tools,Javascript,Jquery,Ajax,Jquery Tools,我有下面的代码,它监听点击a.core-overlay,然后运行overlay()函数,这是jQueryTools的一部分 当单击链接并且只需单击一次就可以运行函数时,以下功能可以正常工作 $("a.core-overlay").overlay({ target:"div.global-overlay", mask: '#3D3D3D', api: true, onBeforeLoad: function() { var toDoID = this

我有下面的代码,它监听点击
a.core-overlay
,然后运行overlay()函数,这是jQueryTools的一部分

当单击链接并且只需单击一次就可以运行函数时,以下功能可以正常工作

$("a.core-overlay").overlay({
    target:"div.global-overlay",
    mask: '#3D3D3D',
    api: true,
    onBeforeLoad: function() {
        var toDoID = this.getTrigger().attr("id");
        var toDo = toDoID.split('-');
        var objectAction = toDo[0];
        var objectType = toDo[1];
        var objectID = toDo[2];

        $('div.overlay-inner').load('/includes/functions/overlay-controls.php', {action: objectAction, type: objectType, object: objectID });
            }
    });
});
然后,当我在单击时将其放入一个
监听器时,需要单击两下才能触发覆盖函数

$(document).on('click', 'a.core-overlay', function(event) {
    $(this).overlay({
        target:"div.global-overlay",
        mask: '#3D3D3D',
        api: true,
        onBeforeLoad: function() {
            var toDoID = this.getTrigger().attr("id");
            var toDo = toDoID.split('-');
            var objectAction = toDo[0];
            var objectType = toDo[1];
            var objectID = toDo[2];

            $('div.overlay-inner').load('/includes/functions/overlay-controls.php', {action: objectAction, type: objectType, object: objectID });
        }
    });
});

我需要它作为一个实时事件触发,因为我使用ajax将行插入到表中,但是当单击其中一个链接时,第一段代码根本不会触发它,而是在第二段代码中单击两次后触发。有什么想法吗?我尝试了很多不同的方法,但都没有成功。

尝试将单击处理程序中的覆盖代码更改为:

$(this).overlay({
    target:"div.global-overlay",
    mask: '#3D3D3D',
    api: true,
    load: true,   
    onBeforeLoad: function() {
        var toDoID = this.getTrigger().attr("id");
        var toDo = toDoID.split('-');
        var objectAction = toDo[0];
        var objectType = toDo[1];
        var objectID = toDo[2];

        $('div.overlay-inner').load('/includes/functions/overlay-controls.php', {action: objectAction, type: objectType, object: objectID });
    }
});

添加了
load:true
以使覆盖立即打开,而不是等待单击。

顶家伙!这就解决了问题,我知道这一定是个小问题。在过去的30分钟里我一直在绞尽脑汁,你是个救命恩人。