jQuery: hide () работает click () не работает - PullRequest
1 голос
/ 29 июля 2011

Я пытаюсь перенаправить после загрузки страницы + изображения:

function redirect_on_load(){
   //called from script in body
   //wait until page loads and click first link
   $(window).load(
       function() {
        $('a').click();         // desired action. ineffective
        $('a')[0].click();      // kills script
        $('a').get(0).click();   // kills script
        $('a').hide();          // works
       }
   );
}

На странице только одна ссылка.

Почему не работает метод щелчка?

Ответы [ 2 ]

7 голосов
/ 29 июля 2011

click запустит любые обработчики событий, прикрепленные к элементу в событии click. Он не будет имитировать фактический щелчок пользователя и запускать действие, которое сопровождает его. Это означает, что он не приведет пользователя к URL-адресу, определенному в href. Вместо этого вам нужно будет использовать window.location = URL

Что-то вроде:

window.location = $("a").attr("href");
2 голосов
/ 29 июля 2011
  • $('a').click(); попытается нажать все элементы привязки
  • $('a')[0].click(); См. Комментарий Ракеты
  • $('a').get(0).click(); См. Комментарий Ракеты
  • $('a').hide(); просто скрывает все якоря

Я бы предложил разместить какой-либо идентификатор или класс какого-либо типа на желаемой ссылке или просто перенаправить с помощью locaton.href = $('a:first').attr("href")

...