Не удается запустить скрипт jQuery после загрузки страницы - PullRequest
0 голосов
/ 18 февраля 2020

Я попытался получить код jQuery для выполнения, когда страница полностью загружена и обработана. Я прочитал, что я должен использовать событие .on("pageshow") для запуска кода, который будет выполнен.

Приведенный ниже код является тестом, который я не могу заставить работать должным образом. Он загружает «коробку», окрашенную в голубой цвет с самого начала. Я хочу, чтобы цвет был изменен на желтый с помощью jQuery после загрузки страницы. Я также добавил триггер, чтобы убедиться, что цвет можно изменить, если я вручную нажму на текст в поле. Но автоматическое выполнение не будет работать ... Я также попытался определить событие для .on("load").

Итак ... Я просто хочу найти способ выполнить код jQuery после страницы был загружен (в моем реальном коде я буду использовать его для прокрутки вниз к указанному элементу c и выделения его)

    <!DOCTYPE html>
    <html lang="sv">
    <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
    
      <script>
        $(document).ready(function(){
            $(window).on('pageshow', function() {
                $("#box").css("background-color", "yellow"); // This never happens...
            });
    
            $("#titletext").click(function(){
                $("#box").css("background-color", "green"); 
            });
        });
      </script> 
      
    </head>
    <body>
            <div id="box" class="d-flex p-2" style="background-color: cyan">
                <div id="titletext" class="p-2 w-100">
                    My header!
                </div>
            </div>
    </body>
    </html>

1 Ответ

0 голосов
/ 18 февраля 2020

Как уже упоминалось в некоторых комментариях, я теперь изменил код до рабочего решения. Я хотел бы представить это, если кому-то это нужно в будущем:

<!DOCTYPE html>
<html lang="sv">
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

  <script>
    // the event is now defined outside the $(document).ready-part
    $(window).on('pageshow', function() {
        $("#box").css("background-color", "yellow"); // This happens after page is loaded
    });

    $(document).ready(function(){
        $("#titletext").click(function(){
            $("#box").css("background-color", "green"); 
        });
    });
  </script> 

</head>
<body>
        <div id="box" class="d-flex p-2" style="background-color: cyan">
            <div id="titletext" class="p-2 w-100">
                My header!
            </div>
        </div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...