jQuery移动事件根本没有触发

时间:2014-03-16 22:53:58

标签: jquery events jquery-mobile

我是移动编程的新手,已经面临这个问题了。

使用jQuery mobile时,只有像“点击”这样的普通事件才能正常工作,但不会像“tap”或“taphold”这样的移动设备。我错过了什么?我已经找到了一些关于在链接jQuery文件时使用正确顺序的提示,但我没有看到任何错误。

<script src="js/jquery.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script>
<link rel="stylesheet" type="text/css" href="css/map.css"></link>
<script src="http://open.mapquestapi.com/sdk/leaflet/v0.1/mq-map.js?key=**"></script>
<script src="http://open.mapquestapi.com/sdk/leaflet/v0.1/mq-geocoding.js?key=**"></script>
<script src="js/index.js"></script>
<script src="js/jquery.mobile.js" type="text/javascript"></script>

<script type="text/javascript">
window.onload = function() {
    loading('show');
    map = L.map('map', {
        layers: MQ.mapLayer(),
        center: [51.137140, 10.239258],
        zoom: 6
    });

    $(document).on("tap", "#map", function(e) {alert("lel");} );
    loading('hide');
};
</script>

另一方面,这是有效的:

$(document).on("click", "#map", function(e) {alert("lel");} );

1 个答案:

答案 0 :(得分:0)

看起来tap没有长期格式的&#39; .on&#39;

它只有提供回调函数的格式。尝试

$("#map").on("tap",function(e) {alert("lel");} );

修改

看起来长形也很好用。你能检查一下你是否有合适的图书馆吗?我无法下载地图,但似乎在div上工作正常。

我添加了tap和taphold。有趣的是,在Android Chrome上,如果首先检测到点击,则可以停止点击,但如果先检测到点击,则点击始终会触发。

http://plnkr.co/edit/vBS1KnKkcQZkF7CP5tsJ?p=preview