Как убедиться, что загруженный файл может быть обнаружен с помощью кода JS - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть этот код в файле assets/URL.js:

$(function(){
    $("a").on("click", function () {
        event.preventDefault();
        var TheURL = $(this).attr('href');
        if(TheURL){
            $("#MyDiv").load(TheURL , { name: '' }, 
                function() {
                    alert("done");
                });
        }
    });
});

И он делает то, что если щелкнуть элемент <a>, функция выше предотвращает переход страницы на эту страницу, а затемон получает URL-адрес и загружает его в div с идентификатором MyDiv.

Теперь это код index.html:

<html>
  <head>
    <script type="text/javascript" src="assets/URL.js?v=1"></script>
  </head>
  <body>
    <div id="MyDiv">
      <a href="files/1.html"></a>
    </div>
  </body>
</html>

и код files/1.html is:

<a href="2.html">2</a>

Теперь, когда я нажимаю <a> в файле index.html, содержимое <div> с идентификатором MyDiv меняет содержимое file/1.html безперезагрузка страницы.

Но когда я нажимаю <a> в файле file/1.html, страница перезагружается и переходит на file/2.html и не следует коду в assets/URL.js, как я могу заставить его следоватьи просто замените содержимое <div> на id MyDiv?

1 Ответ

2 голосов
/ 09 ноября 2019

Вам нужно заново настроить обработчики событий при загрузке динамического html, прямо сейчас вы привязываете только событие click к существующим тегам A в index.html, а не к будущим в динамически загружаемом контенте, таком как 1.html

Вы можете попробовать что-то вроде:

$(function(){
  RefreshEventHandlers();
});

function RefreshEventHandlers() {
    $("a").on("click", function () {
        event.preventDefault();
        var TheURL = $(this).attr('href');
        if(TheURL){
            $("#MyDiv").load(TheURL , { name: '' }, 
                function() {
                    alert("done");
                    RefreshEventHandlers(); // bind click to newly added A tags.
            });
        }
    });
}

Чтобы убедиться, что обработчики событий click установлены на все новые теги A

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...