2012-11-28 56 views
0

我正在使用JS + jQuery創建一個交互式菜單,該工具應該可以與PC和移動設備一起工作。菜單是即時創建的,所以我需要使用.on()iPad touchstart事件

我和我的iPad測試移動方面,我的代碼是這樣的:

jQuery(document).on('click touchstart','.button', function(){ /* Do... */ }); 

click事件工作正常,我的電腦上,但touchstart沒有做任何事情。即使只留下clicktouchstart,但它在我的iPad上不起作用。

+0

嘗試使用jQuery UI Touch Punch http://touchpunch.furf.com/它幫助我使點擊事件在ipad上工作 – chepe263

+0

您說'click'在iPad上不起作用。這意味着你的代碼有問題,因爲'click'應該可以正常工作。你可以在[jsFiddle](http://jsfiddle.net)上演示來演示這個問題嗎? –

+0

我不知道爲什麼,但現在只用'click',它可以正常工作。我所要做的就是在'.on()'函數體中重寫'click'。神祕的行爲。 : - \ – Vektor88

回答

1

我肯定通過把touchstartclick之前在.on()方法解決。

+0

你能澄清一下嗎?我不確定你是什麼意思。 – Doug

+1

@Doug觸發事件名稱順序:jQuery(document).on('touchstart click','。button',function(){/ * Do ... * /}); –

0

如果這不起作用.. 嘗試將元素添加到DOM後關聯event。檢查是否有幫助..

// Button appended to your DOM on the fly 

$('.button').on('touchstart', function(){ 

}); 
+0

我的代碼在將事件關聯之前將按鈕添加到DOM。 – Vektor88

+0

'委託jQuery(document).on('event','selector')'。所以這不是問題。 –

+0

的確,你所做的一件事是事件代表團..一般來說,這種方法應該適用於個人電腦和手機......所以不能理解爲什麼它可能不適合你的情況...這就是我建議你添加事件後按鈕類插入到你的DOM中 –