无法在jQTouch链接上阻止默认()

时间:2011-10-06 13:06:31

标签: jquery web-applications jqtouch preventdefault

我试图阻止我的jQTouch应用程序中的链接加载href中的页面。我的代码的一个非常简化的版本如下

<html>
    <head>
        <script type="text/javascript" src="/jquery.js"></script>
        <link rel="stylesheet" type="text/css" href="/jqtouch/css-jqtouch.css">
        <script type="text/javascript" src="/jqtouch/jqtouch.js"></script>
        <script type="text/javascript">
            $(document).ready(function()
            {
                var jQT = $.jQTouch({});

                $('#row0 a').bind('click', function(e) 
                {
                    e.preventDefault();
                    alert('test');
                });

            });
        </script>
    </head>
    <body>
        <div id="jqt">
            <div id="row0">
                <a href="#searchResults">Search</a>
            </div>

            <div id="searchResults">
                <a href="#" class="back">Back</a>
            </div>
        </div>
    </body>
</html>

当我点击“搜索”链接时,系统会显示警告框,但页面仍会加载。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我刚刚遇到这个问题没有绑定点击你实际上想要绑定点击!

它将在浏览器中工作,但移动版本实际上正在监听的是点击和即使点击被捕获,也允许水龙头传播。值得注意的是,由于一些愚蠢的代码魔法,网页浏览器中的水龙头工作

点击和点击之间的区别有点令人困惑但是如果你在jqtouch-jquery.js文件中查看源代码,你就会知道为什么需要使用tap而不是点击(即使你使用的是Zepto,这与查看发生了什么相关)。