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分钟里我一直在绞尽脑汁,你是个救命恩人。