2016-08-12 2 views
1

Я попытался целую кучу вещей из:
onClick not working on mobile (touch)Кнопка OnClick не работает на мобильном устройстве

document .click function for touch device

Однако ничто не похоже на работу.

Вот что у меня есть:

#modal-close {cursor:pointer;} 

<button class="button" id="modal-close">ok</button> 

function hideModal(){ 
    var modal = document.getElementById('modal'); 
    modal.style.display = 'none'; 
} 

$(function() { 
     $('#modal-close').on('click touchstart',function (e) { 
      hideModal(); 
      }) 
     }); 

Что может я делать неправильно?

+0

USE это '$ (' # модальной закрыть ') (нажмите touchstart ' функция() { hideModal(); })' на'. –

+0

я видел этот вопрос КСН. touch триггеров навешивает состояние, а не вызывает событие щелчка. Я считаю, что мы использовали это для решения проблемы: https://github.com/ftlabs/fastclick –

+0

@RashidJaved Не работает –

ответ

-1

Оказалось

#modal-close {cursor:pointer;} 

<button class="button" id="modal-close">ok</button> 

function hideModal(){ 
    var modal = document.getElementById('modal'); 
    modal.style.display = 'none'; 
} 

$(function() { 
     $('#modal-close').on('click touchstart',function (e) { 
      hideModal(); 
      }) 
     }); 

Был действительным

Дело в том, что у меня был hideModal(), который использовал classList для добавления или удаления классов. Я переключил его на className +=, и он работал так, как предполагалось.

0

Измените идентификатор вашей кнопки на modal_close. Это может сработать для вас. Значение id действует как идентификатор, поэтому существует правило, что мы не можем использовать каждый символ для идентификации идентификаторов.

+0

Это не сработало. –