Yasar Bhatti Ответов: 0

Привязка событий к элементам управления при использовании jquery mobile и cordova


Я пытаюсь повторно привязать события onclick к кнопкам после отправки формы.
Однако я не могу повторно привязать событие щелчка после первоначального щелчка. Я создал краткий пример ниже, чтобы показать, о чем я говорю.

Что я уже пробовал:

У меня есть базовая индексная страница, которая выглядит следующим образом

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com http://api.openweathermap.org 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
    <title>Test App</title>
    
    
</head>
<body>
    <!-- Cordova reference, this is added to your app when it's built. -->
    <script src="cordova.js"></script>
    <script src="scripts/platformOverrides.js"></script>
    <script src="scripts/jquery-2.2.3.min.js"></script>
    <script src="scripts/jquery.mobile-1.4.5.min.js"></script>
    <script src="scripts/index.js"></script>

    <div id="test-page">
        <div class="ui-content">
            <form>
                <button id="test1" data-role="button">Test 1</button>
            </form>
            <form>
                <button id="test2" data-role="button">Test 2</button>
            </form>
        </div>
    </div>
</body>
</html>


У меня есть базовый index.js файл, который выглядит следующим образом

(function () {
    "use strict";

    document.addEventListener("deviceready", onDeviceReady.bind(this), false);

    function onDeviceReady() {
        document.addEventListener('pause', onPause.bind(this), false);
        document.addEventListener('resume', onResume.bind(this), false);
        bindEvents();
    };

    function onPause() {
    };

    function onResume() {
    };

})();

$(document).on('pageload', function () {
    bindEvents();
});

$(document).ready(function () {
    bindEvents();
});

$(document).on('pagechange', function (e, data) {
    bindEvents();
});

function bindEvents() {
    $("#test1").click(function () { alert("test1"); });
    $("#test2").click(function () { alert("test2"); });
}


Оповещения отображаются при первом нажатии кнопки. Однако последующие клики не показывают никаких предупреждений (я оставил много вызовов bindEvents, чтобы показать, что я пробовал).
Я пробовал больше сценариев, но я просто не могу привязать событие click после того, как начальный щелчок сделан....Что я делаю не так?

0 Ответов