簡體   English   中英

以編程方式模擬真實點擊

[英]Simulate real click programmatically

我正在使用此代碼來確定是否以編程方式觸發了點擊。

我應該如何編輯$('#x').trigger('click')以模擬真實點擊? (hasOwnProperty應該返回真實的“ Real”)

$('#x').click(function(e) {
    if(e.hasOwnProperty('originalEvent')) {
        $('#out').append('<li>Real</li>');
    } else {
        $('#out').append('<li>Unreal</li>');
    }
});
$('#y').click(function() {
    $('#x').trigger('click'); //how to edit this
});

因此,基本上沒有想要的東西。 不能模擬真正的點擊-具有所有提升的權限(例如window.open不會被彈出窗口阻止程序阻止)。

但是,如果您堅持使用...,可以通過以編程方式將click事件調度到元素來解決您的特殊情況。 但這在很多方面都容易出錯。

var event = new Event('click');

$('#x')[0].dispatchEvent(event);

您可以輕松地向click函數添加一個額外的參數,而不是向事件對象添加屬性:

$('#x').click(function(e, orig) {
    if(orig) {
        $('#out').append('<li>Real</li>');
    } else {
        $('#out').append('<li>Unreal</li>');
    }
});
$('#y').click(function() {
    $('#x').trigger('click', true);
});

否則,如果您堅持要向事件對象添加屬性,則需要執行以下操作:

$('#x').trigger($.Event( "click", { originalEvent: true } ));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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