Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   если нажали на кнопку перейти по ссылке (https://javascript.ru/forum/misc/32236-esli-nazhali-na-knopku-perejjti-po-ssylke.html)

zzzzzz 08.10.2012 19:42

если нажали на кнопку перейти по ссылке
 
$('body').keydown(function(eventObject){

  if(eventObject.which == "38")
  $("a.use").click();
});


eventObject.which - Код клавиши на которую нажали
38 - код стрелки вверх на клавиатуре(http://jquery.page2page.ru/index.php5/%D0%9A%D0%BE%D0%B4%D1%8B_%D1%81%D0%B8%D0%BC%D0%B2% D0%BE%D0%BB%D0%BE%D0%B2_%D0%B8_%D0%BA%D0%BB%D0%B0% D0%B2%D0%B8%D1%88)

если на странице нажали на стрелку вверх то перейти по ссылке с классом use

if - выполняется, проверял, а вот перехода нет
как заставить работать?

zzzzzz 08.10.2012 19:43

если что не поняли, я могу подробней описать

Nubi 08.10.2012 23:44

zzzzzz,
if(eventObject.which == "38") {
 location.href = $("a.use").attr("href");
}

Hoshinokoe 08.10.2012 23:59

zzzzzz,
Программный вызов события на линке не делает перехода по ней. Это ограничение связано с безопасностью в браузере.

Единственный вариант, это назначать location вручную.

window.location = $('a').attr('href');

zzzzzz 09.10.2012 01:06

оба варианта работают, спасибо

zzzzzz 09.10.2012 01:23

но у меня чуть другая задача.
меню из n количества ссылок при нажатии по которым аяксом подгружается нужная страницы.

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

Hoshinokoe 09.10.2012 03:29

zzzzzz,
$("a.use").click();

имитирует клик, но перехода по ссылке не произойдет. При этом отработают все обработчики, которые установлены на это клик.

Ссылка не умеет сама подгружать данные аяксом, можно добавить обработчик который будет подгружать.

$('a.use').click(function () 
{ 
$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});
 });


Часовой пояс GMT +3, время: 02:46.