我想触发与按下具有焦点的元素上的Tab键时相同的效果。有没有办法做到这一点?我试图让焦点跳到下一个元素。
谢谢!
(jQuery是一个选项)
答案 0 :(得分:1)
像这样(使用jQuery):
<!DOCTYPE html>
<html lang="en">
<head>
<title>LOL Focus!</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
</head>
<form>
<input class="focusable" type="text" value="lol"/>
<input class="focusable" type="text" value="lol" />
<input class="focusable" type="text" value="lol" />
<input class="focusable" type="text" value="lol" />
<input class="focusable" type="text" value="lol" />
<input class="focusable" type="text" value="lol" />
</form>
<input type="button" id="trigger_button" value="lol" />
<script type="text/javascript">
$(function() {
var focusable = $('.focusable'),
last_element_index = focusable.length - 1,
current_index;
focusable.each(function(i) {
$(this).click(function() {
current_index = i;
})
});
$('#trigger_button').click(function() {
current_index = (should_reset_current_index()) ? 0 : current_index + 1;
focusable[current_index].focus();
});
function should_reset_current_index() {
return (typeof(current_index) === 'undefined') || (current_index == last_element_index)
}
});
</script>
</html>
答案 1 :(得分:0)
前一段时间需要模拟标签功能,现在我released it as a library使用了jquery。
EmulateTab:一个jQuery插件,用于模拟页面元素之间的标签。
你可以see how it works in the demo。
if (myTextHasBeenFilledWithText) {
// Tab to the next input after #my-text-input
$("#my-text-input").emulateTab();
}