2014-11-18 6 views
0

JQuery новичок здесь пытается выяснить все приемы функций нажатие/триггерных ...Как использовать JavaScript/jQuery для запуска нажатия клавиши (9) при нажатии на пробел (32)?

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

Вот некоторые примеры HTML я мог бы использовать:

<div id="item_1" class="clickable" tabindex="1"></div> 
<div id="item_2" class="clickable" tabindex="2"></div> 
<div id="item_3" class="clickable" tabindex="3"></div> 

Вот JQuery Я пытаюсь использовать теперь не повезло:

$('.clickable').keydown(function(e) { 
    if (e.keyCode == 32) { 
     e.which = 9; 
     $(this).trigger(e); 
    } 
}); 

Я видел этот пост уже: Simulate Keypress With jQuery но Бесполезный «Мне кажется, что это слишком полезно, возможно, я игнорирую основные понятия. Похоже, что в решении не было явно ссылки на действия двух разных ключей.

ответ

1

Попробуйте это:

$('.clickable').keydown(function(e) { 
    if (e.keyCode == 32) { 
     $(this).next().focus(); 
    } 
}); 
+0

Ну, такого рода работ. Теперь я позволю мне использовать пробел для однократной закладки экрана, а затем останавливается, если я не продолжу с помощью клавиши табуляции. Я также должен быть «сфокусирован» на элементе с tabindex для этого, чтобы что-либо сделать (что означает, что я не могу просто открыть веб-страницу и запустить пробел). Это связано с тем, что HTML tabindexes автоматически замыкается вокруг, когда они достигают последнего, включая остановку в адресной строке URL-адреса. Вот почему я надеялся активировать фактическое нажатие клавиши вместо простого изменения фокуса. Есть предположения? – user3542612

+0

Я думал, что вы только хотели его для классов «.clickable». Если вы хотите его на всей странице, укажите «$ (document)» вместо – elzi

+0

Итак, когда я попробовал $ (document) .keydown ... пробел больше ничего не делает, даже если я уже на .clickable элементе – user3542612