2015-02-20 6 views
2

У меня есть модальный, который использует jQuery для всплывающего окна на (document).ready.jQuery window.one («click») Не работает на мобильном телефоне

$(document).ready(function() { 
    $("#openModal").toggleClass("target"); 
}); 
$(window).one("click", function() { 
    $("#openModal").toggleClass("target"); 
}); 

Он отлично работает на рабочем столе, но на iOS Safari он не закрывается при кране.

Я читал около the cursor:pointer fix, но он не хочет работать в этом сценарии. Я предполагаю, что это связано с тем, что событие привязано к окну, в то время как курсор привязан к элементу.

И я, очевидно, не может поставить body{cursor:pointer;}

Что это могло быть вызвано?

+0

вы получили '$ (окно) .one ("щелчок")', делает это также происходит, когда вы измените его в '$ (окна) .on ("клик")'? – Chanckjh

+0

Да, по-прежнему не работает на мобильных устройствах, но «on» не имеет смысла для модального – propster

ответ

0

Использование .one приведет к запуску только для первого щелчка по окну, поэтому, если вы нажмете (нажали) в окне перед открытием модального файла, функция не будет работать снова. Попробуйте использовать это:

$(window).on("click", function() { 
    $("#openModal").toggleClass("target"); 
}); 

Edit после ответа:

Я предполагаю, что вы хотите модальный открывать только один раз документ готов, то сделать это так, избегать использования toggleClass и использовать вместо этого:

$(document).ready(function() { 
$("#openModal").addClass("target"); 
}); 
$(window).click(function() { 
$("#openModal").removeClass("target"); 
}); 
+0

, если я использую его, каждый раз, когда кто-то нажимает, он снова откроет модальный @Alin – propster

+0

. Я думаю, вы хотите, чтобы модальный открыть только один раз, когда документ загружен? Затем используйте addClass и removeClass вместо переключения ... см. Мое редактирование. – Alin

+0

По-прежнему не работает @Alin – propster

0
$(window).one('click touchstart', function() { 
    $("#openModal").toggleClass("target"); 
}); 
Смежные вопросы