0

モバイルでの JQuery クリック イベントに問題があります。SO で回答を検索したところ、Safari/Chrome などのモバイル ブラウザーで動作するクリック イベントについて矛盾するアドバイスが見つかりました。

以下は私のペンです。これは、はるかに大きなプロジェクトのスニペットです。これは、この投稿のために 5 分でまとめたものです。

デスクトップ ブラウザーでは JS が実行され、CSS クラスが切り替えられますが、モバイルではまったく切り替えられません。私は何が欠けていますか?

http://codepen.io/anon/pen/FknId

ありがとう!

HTML

<a href="#" class="btn-navbar-responsive">Menu</a>
<ul class="navbar-menu navbar-hidden">
    <li><a href="#">Link 1</a></li>
    <li><a href="#">Link 1</a></li>
    <li><a href="#">Link 1</a></li>
</ul>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

JS

$(".btn-navbar-responsive").click(function() {
    $(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});

CSS

.btn-navbar-responsive {
    padding: 15px 20px;
    color: white;
    text-decoration: none;
    font-size: 16px;
    font-family: "Helvetica";
    background-color: #50D78B;
 }


.navbar-visible {
    -webkit-transition: opacity, ease-in, 350ms;
    -moz-transition: opacity, ease-in, 350ms;
    -ms-transition: opacity, ease-in, 350ms;
    transition: opacity, ease-in, 350ms;
    -webkit-transition: top, ease-in, 350ms;
    -moz-transition: top, ease-in, 350ms;
    ms-transition: top, ease-in, 350ms;
    transition: top, ease-in, 350ms;
    top: 10px;
    opacity: 1;
    position: relative;
    z-index: 999;
}

.navbar-hidden {
    -webkit-transition: opacity, ease-in, 350ms;
    -moz-transition: opacity, ease-in, 350ms;
    -ms-transition: opacity, ease-in, 350ms;
    transition: opacity, ease-in, 350ms;
    -webkit-transition: top, ease-in, 350ms;
    -moz-transition: top, ease-in, 350ms;
    -ms-transition: top, ease-in, 350ms;
    transition: top, ease-in, 350ms;
    top: 0px;
    opacity: 0;
    position: relative;
    z-index: 999;
}
4

3 に答える 3

0

簡単な修正は、CSS プロパティを追加することです。

cursor: pointer;
于 2013-10-03T22:59:50.860 に答える
-1

click() イベントの代わりに .on() を試してください。

http://api.jquery.com/on/

$(".btn-navbar-responsive").on('click', function() {
    $(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});
于 2013-09-26T17:25:16.287 に答える