2010-10-28 4 views
1

Я использую горячие клавиши jquery для привязки и запуска функции, когда пользователь нажимает клавишу со стрелкой вправо. Когда горячие клавиши jquery обнаруживают попадание правой стрелки на клавиатуре, я хочу, чтобы jQuery щелкнул следующую ссылку для разбивки на страницы. По какой-то причине это не работает. Я подтвердил, что он работает. Также подтверждается, что селектор выглядит хорошо, получая ниже для работы вместо вместо .trigger, .remove().jQuery Trigger to click

$(document).ready(function() { 

jQuery(document).bind('keydown', 'right',function (evt){ 
    $('#header').find('.next_page').trigger('click'); 
}); 

}); 

<div id="view-header"> 
<a class="next_page" href="/books/?page=2" rel="next">Next →</a> 
</div> 

Любые мысли об этом? Спасибо

+0

В вашем HTML идентификатор является 'view-header', тогда как в вашем Javascript вы ищете' header'. – jAndy

ответ

0

Почему бы не просто сделать .click()?

поочередно вы можете забрать href и использовать javascript, чтобы забрать пользователя.

location.href = '' + $ ('# header'). Find ('. Next_page'). Attr ('href') + '';

+0

Спасибо, пробовал это сейчас. Нет эффекта. Что-то еще? Не можете ли вы вызвать клик по классу или что-то в этом роде? – AnApprentice

+0

Как насчет того, чтобы поднять атрибут 'href' и взять пользователя через JS? См. Обновленный ответ. –

0

Может быть, вы используете #header в jQuery, где вы используете view-header как ID в html. Я сомневаюсь, что это так просто. Трудно назвать событие нативного щелчка, например, тот, который вы описываете. Что происходит с .trigger('click'), он вызывает событие onClick (и его нет). Возможно, самое лучшее, что нужно сделать, это создать обработчик щелчка:

$('.next_page').click(function(){ 
location.href = $(this).attr('href'); 
}); 

Это обработчик щелчка: теперь, когда вы звоните .trigger («щелчок») он должен выполнить этот код. Я думаю, что это можно сделать намного проще, чем вы показали (т. Е. Вы могли бы просто изменить значение location.href в обработчике keydown и не нажимать на него), но, возможно, у вас есть другие планы. :)

UPDATE:

Этот код работает отлично. Это может быть не так компактно, как могло бы быть, но я старался поддерживать как можно больше от вашего оригинального сообщения. Наслаждаться.

<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script> 
$(function(){ 
$('.next_page').click(function(){ 
location.href = $(this).attr('href'); 
}); 
}); 
$(document).keydown(function(event) { 
if(event.keyCode==39) { 
        $('.next_page').trigger('click') 
       } 
      }); 
</script> 
<div id="header"> 
<a class="next_page" href="/books/?page=2" rel="next">Next →</a> 
</div>