簡體   English   中英

單擊jQuery觸發函數之前需要單擊兩次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM