2013-08-26 4 views
0

У меня есть следующая проблема, которая кажется легкой, но я не могу понять, что не так.Проблема с динамическим тегом при тайм-ауте

То, что я хочу сделать, это следующее:

Когда я нажимаю ссылку (пример: mysite.com/blog/blog-article.html) в HREF этой связи сохраняется в переменной. В javascript он заблокирован и направлен на другой URL-адрес (основная категория - mysite.com/blog). Все страницы загружаются динамически.

В этом mysite.com/blog есть элемент без href. Я передам заблокированный url (который был сохранен в переменной) в элемент a.

$('#go-to-next').attr('href',goToUrl); 

Это работает нормально, но после таймаута я хочу, чтобы его щелкнули.

setTimeout(function(){ 
     $('#go-to-next').click(); 
    },500); 

Но это не работает. Кто-нибудь знает, в чем проблема? Когда я помещаю скрипт тайм-аута в firebug, он работает. Поэтому он должен что-то сделать с помощью .on(), но достаточно, чтобы прошивать, я могу без проблем изменить href.

+0

Вызов '.click()' просто запускает обработчики, привязанные к событию, он фактически не имитирует щелчок по ссылке, поэтому он не будет запускать действие по умолчанию. – Barmar

+0

@ Бармар Не знал этого. Но почему это срабатывает, когда я вставляю код в Firebug? Есть ли способ, которым я могу имитировать щелчок по динамически сгенерированной ссылке? –

+0

Я не знаю, почему он работал в Firebug. Я попробовал это в Chrome Developer Tools, и это не сработало. В этом отношении нет никакой разницы между статическими и динамическими ссылками. – Barmar

ответ

0

Try:

setTimeout(function(){ 
     window.location.href = $('#go-to-next').attr('href'); 
    },500); 

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

+0

Спасибо, но, к сожалению, это не сработает. У меня есть несколько типов ссылок «go-to-next» с разными классами. Эти классы читаются, а затем определяется, как будет отображаться новый URL-адрес. Мне нужно смоделировать событие click на # go-to-next. –

+0

Если ссылки имеют привязки событий, созданные с помощью '$ (" # go-to-next "). Click (function() ...)', а вызов '.click()' должен выполнять эти привязки. Единственное, чего он не делает, это запустить обработчик по умолчанию, который следует за ссылкой. – Barmar

Смежные вопросы