Файл .js не может быть вызван из связанного HTML-файла-jquery mobile

StackOverflow https://stackoverflow.com/questions/4398978

Вопрос

Я использую мобильные фреймворки jQuery. У меня есть 2 файла HTML, в котором есть по двум кнопкам. Нажатие на одну кнопку перейдет на другой HTML -файл. JavaScript, загруженный в каждом HTML -файле, будет обрабатывать событие Click в файлах HTML. Проблема здесь в том, что .js загружен из второго HTML -файла, который не может быть вызван первым HTML -файлом. Он показывает ошибку.

Ошибка: p.attr ("href") не определена
Исходный файл: файл: ///users/aspire/development/jquery%20mobile/sample/jquery.mobile-1.0a2.min.js
Линия: 96

Что идет не так?

Отредактировано: test.html

HTML-Tags. Под Headertag

    <link rel="stylesheet" href="jquery.mobile-1.0a2.min.css" />
    <script src="jquery-1.4.4.min.js"></script>
    <script src="jquery.mobile-1.0a2.min.js"></script> 
       <script type="text/javascript">   
        $(function(){
            $('#test').click(function(){
                alert('This is a general button!');
            });
        });
       </script>
  <Bodytag>
    <div data-role="content">
    <div data-role="page">
        <a id="test" data-role="button" data-inline="true" data-theme="b">Click here</a>
        <a href="~Development/JQuery Mobile/sample/test2.html" data-role="button" data-inline="true" >Navigate to two</a>
    </div>
    </div>
</Bodytag>

Во втором HTML. test2.html

HTML-Tags. Под Headertag

    <link rel="stylesheet" href="jquery.mobile-1.0a2.min.css" />
    <script src="jquery-1.4.4.min.js"></script>
    <script src="jquery.mobile-1.0a2.min.js"></script> 
       <script type="text/javascript">
        $(function(){
            $('#test2').click(function(){
                alert('This is a general button!');
            });
        });
       </script>
  <Bodytag>
    <div data-role="content">
    <div data-role="page">
        <a id="test2" data-role="button" data-inline="true" data-theme="b">Click here</a>
        <a href="~Development/JQuery Mobile/sample/test.html" data-role="button" data-inline="true" >Navigate to two</a>
    </div>
    </div>
</Bodytag>

Он работает нормально, когда Test2.html открывается отдельно в браузере. Даже после возвращения к Test.html это дает ту же ошибку. JavaScript не называется. То есть только один раз, JavaScript отлично работает, когда .html запускается в первый раз. После навигации на другую страницу JavaScript не называется.

Это было полезно?

Решение

Я столкнулся с той же проблемой, JavaScript во втором HTML просто не работает. Я работал над проблемой, добавив REL = «внешний», чтобы заставить разгрузку. т.е.

<a href="test2.html?" id="test2" data-role="button" data-inline="true" data-theme="b" rel="external">Click here</a>

Надеюсь, это тоже работает для вас.

Другие советы

Ответ Клемента помог, потому что не было вызова AJAX, заменяющего вашу ссылку.

Нормальная ссылка (без REL = Exteral) извлекается с вызовом AJAX, и только тело доставляется и добавляется в DOM текущей страницы.

Вот почему ваш JS не будет вызван.

Все JS должен быть связан со всеми страницами во внешних файлах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top