jquery mobile tap 事件触发一次然后导致问题

标签 jquery ipad jquery-mobile scrollto

我有一个绑定(bind)到图像的点击事件。点击图像时文档应该滚动。在装有 iOS5 的 ipad 上工作时,第一次点击图像时该功能可以正常工作,但如果用户连续第二次点击该图像,该功能就会失败。如果用户持续点击,该函数似乎会再次触发,但无法滚动函数中定义的完整像素距离。

如果用户点击图像,触摸屏幕以物理滚动页面,然后再次点击图像,该函数就会按预期触发。为什么我的代码在第二种情况下有效,但在第一种情况下不起作用?非移动版本运行得很好。

<script type="text/javascript">
    $(window).load(function () {
        $('#down_button').bind('tap', function() {
            $.scrollTo( '+=1024px', {axis: 'y', duration:300} );
        });

        $('#up_button').bind('tap', function() {
            $.scrollTo( '-=1024px', {axis: 'y', duration:300} );
        });
    });
</script>

最佳答案

您没有显示关联的 HTML,因此我猜测这些元素之一可能嵌套在另一个元素内。

如果是这种情况,那么点击事件可能会冒泡。您可以通过将 event.stopPropagation() 添加到一个或两个事件处理程序来防止这种情况发生。这还需要您更改函数以传递事件,如下所示:

.bind('tap', function(event) {

关于jquery mobile tap 事件触发一次然后导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243910/

相关文章:

ios - 正确使用 DrawRect 覆盖 - 我可以防止 View 拉伸(stretch)吗?

iphone - iPhone 中的资源包

jquery - 在验证失败的 jquerymobile 上更改阴影颜色

javascript - 页面更改在使用 Phonegap Build 的 Android 上的 JqueryMobile 中不起作用

jquery - 在滚动条上隐藏顶部标题

javascript - AJAX POST - 如何在 PHP 中使用 js 变量

javascript - IE 和 setInterval() 不刷新/更新的问题

javascript - 拖放 html 元素

ipad - UIViewController 包含基础知识 - 如何在两个并排的 ViewController 上显示全屏 ViewController

jquery - 从函数触发jquery移动页面转换