Не удалось вызвать файл .Js из связанного html-файла - JQuery mobile - PullRequest
0 голосов
/ 09 декабря 2010

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

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

Что не так?

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

html-теги.Под заголовком

    <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-теги.Под заголовком

    <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 не называется.т.е. только один раз, java-скрипт работает нормально, когда .html запускается впервые.После перехода на другую страницу Java-скрипт не вызывается.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2010

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

Обычная ссылка (без rel = exteral) выбирается с помощью вызова ajax, и только тело берется и добавляется в DOMтекущая страница.

Вот почему ваш js не будет вызываться.

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

0 голосов
/ 10 декабря 2010

Я столкнулся с той же проблемой, Javascript во втором HTML просто не работает. Я обошел проблему, добавив rel = "external" для принудительной выгрузки. т.е.

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

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

...