У меня есть приложение Phonegap, использующее jQuery и jQuery Mobile.Функция JS, вызванная без вызова
На некоторой странице я привязал функцию к событию касания, но функция запускается при загрузке страницы. После небольшой отладки (с использованием arguments.callee.caller.caller.toString()
) я обнаружил, что по какой-то сумасшедшей причине в этой кнопке запускается событие click, только когда страница загружается.
Когда я изменил класс нижнего колонтитула, проблема исчезла (также мой стиль), затем я изменил ссылки на классы в моем файле CSS, чтобы соответствовать новому классу нижнего колонтитула, проблема вернулась. Это очень странно, возможно, у него есть что-то с моим CSS.
В моем проекте нет никакой ссылки на "footer_body"
.
Если я устанавливаю вызовы функций непосредственно в HTML (что-то вроде <span onClick="javascript:obj.leftMethod()">
), у меня такое же поведение.
Наверняка это проблема с Phonegap/Android, так как этого не происходит в браузере ПК (кроме того, я должен прокомментировать много кода, который работает только на мобильных устройствах).
Вот код:
HTML:
<div class="footer_body">
<span class="left"><span>Text 1</span></span>
<span class="right"><span>Text 2</span></span>
</div>
JS/JQuery:
function PageClass() {
...
// called when the page is loaded
this.init = function() {
$(".footer_body", "#page_2").find(".left").unbind("tap").bind("tap", function() {
that.leftMethod();
});
$(".footer_body", "#page_2").find(".right").unbind("tap").bind("tap", function() {
that.rightMethod();
});
// that is a reference to "this" of the class
}
}
Положить 'отладчик; 'первая строка в ваших функциях' leftMethod()/rightMethod() '. Откройте в Chrome и когда он загрузится, нажмите «Ctrl + Shift + I», появится всплывающее окно с вкладкой «Сценарии», на которой вы получите весь стек (caller, callle, events и т. Д.) –
@ GRIGORE-TURBODISEL, m с помощью Phonegap. –
Не имеет значения. Попробуйте это в любом случае. –