2012-03-26 63 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