用fastclick插件解决jquery中.live方法添加的click事件在苹果iso浏览器下不好用问题

jquery.live()可以对未来加载到页面中html标签写click点击事件。针对未来的html这一特性,我们非常喜欢用.live()
但是 在iso浏览器下,
 

$('.live').live({
    'click':function(){
        alert('live');
    }
});   

却没有反应。上网上找了一些有这么解决的 吧 click 事件 改成  touchstart 事件

$('.live').live({
    'touchstart':function(){
        alert('live');
    }
}); 

  
或者 同时给两个事件都加上

$('.live').live({
    'click , touchstart':function(){
        alert('live');
    }
});

这样 苹果手机的iso浏览器的确可以了,可以触发事件。
但是当我想手指移动页面时如果正好点在这个div的时候就出发这个事件了,请问如何在手机端将触摸和触摸移动分开? 这有出现了一个问题。

—————我是分割线——————-    
后来又找了一些文章 发现了 FastClick 这个js插件。发现他很神奇的解决了这个问题。使用也很简单。
引用fastclick.js这个js文件,然后 在页面加载完事后运行 FastClick.attach(document.body); 就可以了。
<script type=”text/javascript”></script>

<script src="js/fastclick.js" ></script>
<script type="text/javascript">
$(function() {
    FastClick.attach(document.body);
});
</script>

如果页面中某些 html元素 不希望收到 FastClick 的影响,可以给这个元素添加 needsclick 这个类。
例如:

<a class="needsclick">忽略 FastClick </a>
<a class="dropdown-toggle needsclick" data-toggle="dropdown">Dropdown</a>

项目主页:https://github.com/ftlabs/fastclick
备用下载地址:http://pan.baidu.com/s/1jG0xTpc

发表评论

邮箱地址不会被公开。 必填项已用*标注