Невозможно предотвратитьDefault () по ссылке jQTouch - PullRequest
1 голос
/ 06 октября 2011

Я пытаюсь запретить ссылке в моем приложении 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 голосов
/ 26 января 2012

У меня только что была эта проблема, не привязывайте к нажатию, вы действительно хотите привязать к нажатию!

Это будет работать в браузере, но мобильная версия на самом деле прослушивает это нажатие и позволяет тап для распространения, даже если клик фиксируется. Стоит отметить, что тап работает в веб-браузере из-за некоторой тупой магии кода

Разница между тапом и кликом немного сбивает с толку, но если вы посмотрите в исходном файле jqtouch-jquery.js вы получите представление о том, почему вам нужно использовать tap, а не click (даже если вы используете Zepto, это уместно, чтобы увидеть, что происходит).

...