2012-03-26 62 views
2

你怎麼能做下面的事情?如何添加觸摸事件的類?..優先通過jquery

$('.myDivs').ontouchstart(function(){ 
alert('touch'); 
}) 

我似乎能夠實現觸摸事件的唯一方法是使用JavaScript ..像這樣

document.getElementById('singleDiv').addEventListener("touchstart",touchHandler, false); 

不過,我想實現這個一類,而不是一個ID ..因此,有沒有辦法使用jQuery像上面的例子做....

我已經找到了答案:

$('.myDivs').bind('touchstart', function (event) { alert('touch');}); 

親切的問候Ĵ

+0

我已經和這個很長時間的掙扎,然後2分鐘後我找到了答案:$('。myDivs')。bind('touchstart',function(event){alert('touch');}); – jon 2012-03-26 10:19:30

回答

3

在jQuery 1.4.2,以下爲我工作得很好:

$('.classname').live('touchstart', function(e) { 
    // Do whatever you want here... 
}); 

或者jQuery的最新版本:

$('.classname').on('touchstart', function(e) { 
    // Do whatever you want here... 
}); 
+0

謝謝BenM我會看看...關於J – jon 2012-03-26 10:21:17

+0

測試他們,並且都工作很好,只要你有答案中指定的正確版本的jquery(我沒有!)謝謝本 – jon 2012-03-26 10:30:10

+0

很高興幫助,@jon! – BenM 2012-03-26 10:30:47

0

只需選擇類而不是ID:

document.getElementsByClassName('myClass').addEventListener(...); 

請勿這個選擇將無法在IE瀏覽器。對於IE,你可以使用jQuery:

$('.myClass').on("click",function(){}); 
+0

在大多數移動瀏覽器中,「onclick」事件與「ontouchstart」事件不同。 iOS例如在稍微延遲之後執行點擊事件(瀏覽器需要首先檢查用戶是否正在做某些本地操作,例如滾動,縮放等等)。 – BenM 2012-03-26 10:19:23

+0

我甚至沒有考慮過他需要的那種事件,因爲我看到它的問題是選擇課程。 – Th0rndike 2012-03-26 10:20:56

+0

感謝Th0rndike,但document.getElementsByClassName('myClass')。addEventListener似乎不工作,出於某種原因...我喜歡你認爲它會。 – jon 2012-03-26 10:22:24