簡體   English   中英

jQuery移動點擊事件觸發vclick

[英]jQuery mobile tap event fires vclick

我正在創建一個應在移動設備和PC上運行的jQuery移動應用程序。 我正在使用jQuery Finger插件( http://ngryman.sh/jquery.finger/ )檢測手指事件:

$('body').on('tap', 'image', function(e) {
    console.log(e);
});

問題在於,tap事件被觸發兩次。

[1] v.Event {type: "tap", x: 600, y: 374, orientation: null, end: false…}

[2] v.Event {originalEvent: v.Event, type: "tap", timeStamp: 1440756290573, jQuery183031088717421516776: true, toElement: image#7…}

當我在開發人員工具中折疊第二事件信息時,類型顯示為“ vclick”。

...
shiftKey: false
srcElement: image#7
target: image#7
timeStamp: 1440756501237
toElement: image#7
type: "vclick"
view: Window
which: 1
__proto__: Object
...

如何防止這種情況發生,因此該事件僅運行jQuery手指點擊事件,而不運行vclick?

在此處輸入圖片說明

您可以通過檢查事件的特定字段來區分事件(忽略事件或進行特殊處理)。

在這種特殊情況下,我看到了originalEvent字段的區別。 因此,僅處理第二個事件,您可以使用如下所示的事件(出於測試目的, event.originalEvent被替換為函數的參數originalEvent ):

 $(document).on('tap', function(event, originalEvent) { if (originalEvent) { console.log('Time to handle event'); //code code code } else { console.log('Ignoring event'); } }); $(document).trigger('tap'); $(document).trigger('tap', ['v.Event']); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

暫無
暫無

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

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