Событие jQuery hashchange — куда поместить?

#javascript #jquery

#javascript #jquery

Вопрос:

Я использую событие jQuery hashchange.

 $(window).on('hashchange', function () {
//do something
});
  

Когда мой URL-адрес содержит хэш при первой загрузке, я понимаю, что это должно быть запущено с помощью $(window).hashchange();

Могу ли я поместить его вместо document ready в document ready?

 $(document).ready(function () {
    $(window).on('hashchange', function () {
    //do something
    });
});
  

Ответ №1:

Вы можете запустить его вручную, например:

 $(document).ready(function () {
    $(window).on('hashchange', function () {
        //do something
    }).trigger('hashchange');
});
  

Или вы можете сделать это следующим образом:

 $(document).ready(function () {
    //attaching the event listener
    $(window).on('hashchange', function () {
        //do something
    });

    //manually tiggering it if we have hash part in URL
    if (window.location.hash) {
        $(window).trigger('hashchange')
    }
});