2016-01-11 10 views
0

фона связан с этим вопросом я отправил вчера:Javascript работает на эмуляторе, но не работает на реальном устройстве

on click event inside pageinit only works after page refresh.

У меня есть ответ на этот вопрос, и я попробовал его в chrome devtools, он работал нормально. Но сегодня, когда я тестировал его на реальном устройстве (iPhone), он не работает. Когда я использую свой старый код, кнопки работают, но только после обновления. И когда я использую этот принятый ответ, кнопки больше не работают. Но он отлично работает в chrome virtual device. Надеюсь, кто-то может помочь.

+1

Вы пробовали размещения кода инициализации внутри '$ (документ) .ready (функция() {...});' блок? –

+0

Рекомендуется поместить его в '$ (document) .on (" pageinit ", function() {...});' Мой код инициализации должен решить, показывать ли этот баннер или нет, и он находится внутри этого ' pageinit' (я не публиковал эту часть кода в вопросе), и он отлично работает. –

+1

Да, его совет, вероятно, был неправильным, предполагая, что вы следовали за ним к письму. Вероятно, вы только что изменили '$ (document) .on (" pageinit ", function' to' $ (function' – dtanders

ответ

0

Я хотел бы сделать это:

$(function() { //implicit DOMReady handler in jQuery 
    $("#close").on("touchstart click", CloseBanner); //make sure you handle touch events 
    $("#download").on("touchstart click", SetAppStorePath); 
}); 

И просто не беспокоиться о странице. Изменить: О, я вижу, в чем проблема! Вы не можете оставить href на якоре. Добавьте href="#" к этим якорям, и он должен работать нормально. Также рассмотрите возможность изменения href в ссылке на хранилище приложений вместо настройки местоположения окна, потому что людям нравится видеть, куда будут идти ссылки.

<div class="banner"> 
    <div class="container"> 
     <a id="close" href="#">&times;</a> 
     <a id="download" href="#">Download</a> 
    </div> 
</div> 

И

$('#close').attr('href', 'app store URL goes here'); 
+0

Он работает только после обновления страницы ... –

+0

@ YabinSong see my edit – dtanders

+0

Привет, я добавил 'href =" # "', он по-прежнему работает только после обновления страницы ... –

0

Вы можете хочешь использовать сенсорное событие для мобильных устройств, как это:

$("#close").on("touchstart", CloseBanner); 

Или, если вы не хотите использовать для sepearate событий для различных платформ, то вы можете использовать не Jquery вариант, как это :

closeButton = document.getElementById('close'); 
closeButton.onclick = CloseBanner; 

Надежда это помогает ...

+0

Я использую второй код, который вы предложили, поскольку мое приложение предназначено как для iOS, так и для android. Я помещаю код внутри' pageinit'. Он также работает только после обновления страницы. –

+0

есть Я попробовал его за пределами 'pageinit', потому что я следил за ответом на исходный вопрос. – axaq

+0

Я попробовал его за пределами' pageinit'. Он заставляет кнопку больше не работать. –

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