jQuery - открывает все ссылки на странице - PullRequest
4 голосов
/ 04 ноября 2008

Я пытаюсь выучить jQuery, чтобы восполнить свои анемичные навыки JavaScript.

В качестве тестового проекта у меня есть страница, полная ссылок, и я хочу, чтобы кнопка открывала все ссылки в новых вкладках. Все ссылки имеют атрибуты target = "_ blank".

Я использую это

  $('button').click(function() {
    $('a').click();
  );}

Я протестировал синтаксис селектора, изменив CSS ссылок, так что я уверен, что все в порядке. Что мне нужно изменить, чтобы открыть ссылку?

1 Ответ

11 голосов
/ 04 ноября 2008

вы не можете манипулировать вкладками с помощью javascript (вы можете попросить ссылку открыть в новом окне, вы просто не можете сказать, чтобы она открывалась на вкладке). то, что вы можете попробовать, если вы хотите попробовать что-то вроде этого:

$('button').click(function() {
  $('a').each(function() {
     window.open($(this).attr('href') );
  });
});

, по существу, при нажатии <button> для каждого элемента <a> передайте значение href в window.open. или в основном груды открытых окон, если у вас нет блокировщика всплывающих окон:)

Ваш текущий код в основном говорит, что когда вы нажимаете <button>, активируйте обработчик onclick() всех элементов <a>.

edit : в ответ на комментарии сравните этот код, который имитирует функциональность OP:

$('a').click(function() {
// assign an event to a.onclick
  window.open($(this).attr('href') );
});

$('button').click(function() {
// when we press <button>, trigger a.onclick
  $('a').click();
});

потому что сначала мы объявили функциональность onclick(), теперь у нас такое же поведение, как и в моем исходном коде. (груды открытых окон)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...