jQuery кликване събитие не работи в мобилен Firefox

Имам навигационно меню, което се показва и скрива на мобилни устройства, когато се щракне върху елемент. Работи навсякъде освен във Firefox на Samsung Galaxy 3. Ето HTML:

<nav id="nav" role="navigation">
  <ul>
    <li>Menu Item 1</li>
    <li>Menu Item 2</li>
  Etc . .
  </ul>
 </nav>
 <div id="nav-arrow">&#9660;</div>

Елементът с прикачено събитие кликване е "nav-arrow". Ето jQuery:

$("#nav-arrow").click(function() {
        if ($("#nav").is(":visible")) {
            $("#nav").slideUp(800, function() {
                $("#nav-arrow").html("&#9660;");
            }); 
        } else {
            $("#nav").slideDown(800, function() {
                $("#nav-arrow").html("&#9650;");
            });             
        }
    });

Контейнерът има свойство display:none, докато не се щракне върху навигационната стрелка. Може ли някой да ми помогне да накарам това да работи на Mobile Firefox?


person joakland    schedule 02.10.2014    source източник
comment
Наистина не съм сигурен дали това, което се опитвате да направите, е възможно. Трябва да бъде, но не съм напълно убеден, че jquery има необходимата основа, за да обработва кликвания на мобилни устройства. Мисля, че това, което искате да направите, е да използвате jquery-mobile и това е събитие vclick.   -  person Brandon Kindred    schedule 03.10.2014
comment
Това работи на всяко мобилно устройство и браузър, с изключение на Firefox на Samsung Galaxy.   -  person joakland    schedule 03.10.2014
comment
Вижте какво ще направи използването на .on('click', function ... вместо просто .click   -  person tbh__    schedule 03.10.2014
comment
stackoverflow.com/questions/21776570/ Мисля, че това е вашият проблем?   -  person tbh__    schedule 03.10.2014
comment
Използването на .on('click' имаше същите резултати. В крайна сметка реших този проблем, като изтеглих само събитията при докосване от jQuery Mobile Download Builder и превключих функцията за щракване на .on('tap', function . . . . etc. Това беше лекарството.   -  person joakland    schedule 03.10.2014


Отговори (1)


jQuery Mobile изисква метода "делегиране":

$(document).delegate('#nav-arrow', 'click', function () {
    if ($("#nav").is(":visible"))
    {
        $("#nav").slideUp(800, function()
        {
            $("#nav-arrow").html("&#9660;");
        }); 
    }
    else
    {
        $("#nav").slideDown(800, function()
        {
            $("#nav-arrow").html("&#9650;");
        });
    }    
});
person Tim Samoff    schedule 24.11.2014