Файл .js не может быть вызван из связанного HTML-файла-jquery mobile
-
10-10-2019 - |
Вопрос
Я использую мобильные фреймворки 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 должен быть связан со всеми страницами во внешних файлах.