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