![](/img/trans.png)
[英]JQuery click function not working first time - requires 2 clicks before it functions properly
[英]jQuery on click requires two clicks before triggering function
我有以下代碼,偵聽對a.core-overlay
的單擊,然后該代碼運行a.core-overlay
的overlay()函數。
單擊鏈接后,以下操作正常,並且僅單擊一次即可運行該功能。
$("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 });
}
});
});
然后,當我將其放入on click
偵聽器中時,需要兩次單擊才能觸發疊加功能。
$(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
可使覆蓋層立即打開,而不是等待單擊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.