jquery show скрыть не работает в мобильном телефоне - PullRequest
0 голосов
/ 03 апреля 2012

Я создаю дружественную мобильную версию своего сайта, и все, кажется, работает нормально, но я не могу щелкнуть ссылки внутри div, который отображается после того, как функция click показывает, что div.

$(document).ready(function() {

document.addEventListener("touchstart", function() {},false);



$("#business").click(function(){
    $(this).addClass('on');
    $("#business_open").show();
    $("#menu_open").hide();
});

$("#menu").click(function(){
    $(this).addClass('on');
    $("#menu_open").show();
    $("#business_open").hide();
});

});

Вот HTML:

<div class="wrapper"></div>

<div id="business">
  <span>Title</span>
</div>

  <div id="business_open">
    <ul>
      <li><a href="link1.html">Link 1</a></li>
      <li><a href="link2.html">Link 2</a></li>
    </ul>
  </div>

<div id="menu">
  <em>m</em>
</div>

  <div id="menu_open">
    <ul>
      <li><a class="selected" href="link1.html">Link 1</a></li>
      <li><a href="link2.html">Link 2</a></li>

    </ul>
  </div>

1 Ответ

0 голосов
/ 03 апреля 2012

Ваши события могут быть назначены до завершения загрузки DOM. Вы можете обойти это, обернув их в готовую функцию jQuery, сокращение которой выглядит следующим образом:

$(function(){
    $("#business").click(function(){
        $(this).addClass('on');
        $(".wrapper, #business_open").show();
        $("#menu_open").hide();
    });

    $("#menu").click(function(){
        $(this).addClass('on');
        $(".wrapper, #menu_open").show();
        $("#business_open").hide();
    });

    $(".wrapper").click(function(){
        $(".wrapper, #business_open, #menu_open").hide();
        $('#business, #menu').removeClass('on');
    });
});
...