Откройте ссылку, затем выполните Jquery

У меня есть ссылки в моем нижнем колонтитуле, которые я хочу связать с определенными разделами слайда, который я построил на своем сайте. В настоящее время я связываю ссылки нижнего колонтитула с этими разделами через

 <a href="javascript:showAndScroll(1, 1)">LINK!</a>

Который работает на странице с содержанием слайд. Однако я также хочу, чтобы эти ссылки работали с других веб-страниц. Я нашел решение ниже, чтобы загрузить "showandscroll" после того, как он был перенаправлен на страницу / якорь слайдера.

<a id="sem-seo" nohref title="">LINK!</a>

$("#sem-seo").click(function() {
window.location.assign("portfolio.html#anchor2");
$(window).bind("load", showAndScroll(1, 2));
});

Но по какой-то причине (нормально загружает страницу и переходит в раздел) просто не загружается запрос showAndScroll

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

вот целевая страница (я хочу иметь возможность ссылки на различные разделы с других страниц) Fiddle

1 ответ

Решение

Ваша проблема в том, что ваш код никогда не будет выполнен.

$("#sem-seo").click(function() {
//THIS LINE CAUSES A NEW PAGE TO LOAD
window.location.assign("portfolio.html#anchor2");
//THAT MEANS THIS CODE WILL NEVER BE REACHED
$(window).bind("load", showAndScroll(1, 2));
});

Вам необходимо применить свой код на целевой странице, вы не можете выполнить код JavaScript для любой страницы, кроме той, на которой вы находитесь.

Кроме того, не прикрепляйте обработчики внутри обработчиков. Если кто-то несколько раз нажимает на #sem-seo, вы прикрепите несколько load обработчики к вашему windowчто не то, что вы хотите.

ОБНОВИТЬ

Я думаю, что это решит вашу проблему. На странице происхождения добавьте эту ссылку:

 <a id="sem-seo" href="portfolio.html#anchor2?show=true" title="">LINK!</a>

И на странице назначения добавьте этот скрипт:

  $(function(){
       var url = window.location.href;
       if(url.indexOf('?show=true') != -1 || url.indexOf('&show=true') != -1)
            $(window).bind("load", showAndScroll(1, 2));
  });
Другие вопросы по тегам