2013-11-12 3 views
0

У меня есть простой обработчик кликов, который что-то делает на экране вместо того, чтобы посещать эту ссылку. Вот код (я вырезая нонсенс, но важный материал является точным):iPhone против подавления Javascript

<a href="#" id="others">Link Text</a> 

<script type="text/javascript" src="./path/to/jquery.js"></script> 
<script type="text/javascript"> 
$('#others').on('click', function(ev){ 
    ev.preventDefault(); 
    ev.stopPropagation(); 

    // Doing stuff (some simple DOM manipulation) 

    return false; 
}); 
</script> 

Это прекрасно работает на собственных браузерах. Он отлично работает на Android (как старый веб-кит, так и новейшие сборки Chrome), и он отлично работает на iOS на iPad 2 ... Но один из моих пользователей использует iPhone 4, и здесь начинается все самое интересное.

Когда они нажимают на ссылку, она загружается. Несмотря на три отдельных триггера не до, событие все еще стреляет. Другой javascript работает на странице, и, как я уже сказал, это работает везде еще. На самом деле, чтобы путать вещи немного больше, событие подавляется очень, очень редко. Менее 1% времени.

Значит, это известная проблема с iPhone? Есть ли лучший способ сделать все это?

Javascript загружается в конец тела (все еще внутри него, но после всех элементов DOM, которые он упоминает). JQuery версия 1.10.1

+0

' 'click'' должно быть'' touch'' события прямо ... – Jai

+0

@Jai Действительно? Есть различие? – Oli

+0

Ну, на самом деле, я никогда не работал для мобильного приложения, но я читал где-то там должны быть события касания для iphones. – Jai

ответ

1

попробуйте использовать href="javascript:void();"

<a href="javascript:void();" id="others">Link Text</a> 

$('#others').on('click', function(ev){ 
//ev.preventDefault(); 
//ev.stopPropagation(); 

// Doing stuff (some simple DOM manipulation) 

return false; 
}); 
+0

Старая школа. Я жду обратной связи с пользователем проблемы. Это 4 отдельных вещи, которые должны прекратить работу ссылки. Если это не сработает, я думаю, что я просто заблокирую пользователя :) – Oli

Смежные вопросы