如何获得以前关注的元素?
说明:
当用户点击手机键时,它不应该激活或聚焦。 这样:focus或activeElement返回前一个焦点元素(textarea或input-text)。
<script>
$(function(){
$(".phonepad").prop("disabled", true);
$('.phonepad').mousedown(function() { preventDefault();});
$('.phonepad input').mousedown(function() { preventDefault();});
$('.phonepad input').click(function(){
$(document.activeElement).sendkeys(
this.name || this.value);
);
});
});
</script>
<div class="phonepad" >
<input type="button" value="7" ><br>
<input type="button" value="4" ><br>
</div><br/>
<input type="text" class="output" /><br/>
<textarea class="output"></textarea><br/>
答案 0 :(得分:1)
您可以使用隐藏元素来跟踪当前焦点的元素。这样,当另一个元素获得焦点时,它将保持前一个元素id。单击启用焦点的元素时,其id将存储在隐藏元素中。当单击焦点禁用元素时,焦点将重新放回先前聚焦的元素和&#39; active_focus_enabled_id&#39;隐藏元素不会更新。您需要使用类来识别哪些元素能够/无法获得焦点,并确保所有启用焦点的元素都具有ID。
<input type='hidden'id='active_focus_enabled_id' value=''id_with_initial_focus'>
<input type='button' class='focus_enabled' id='id_with_initial_focus' value='Whatever #1'>
<input type='button' class='focus_enabled' id='some_other_id' value='Whatever #2'>
...
<input type='button' class='focus_disabled' value='Phone Input #1'>
<input type='button' class='focus_disabled' value='Phone Input #2'>
...
<script>
$('.focus_disabled').click(function(event) {
var id_previous = $('active_focus_enabled_id' ).val();
$(''#' + id_previous).focus();
});
$('.focus_enabled').click(function(event) {
var id_new = $(event.target).attr('id');
$('active_focus_enabled_id').val(id_new);
});
</script>
答案 1 :(得分:0)
将mousedown事件处理程序附加到那些调用preventDefault()。
的按钮