在回发后的我的页面上,我试图将焦点返回到先前关注的元素
$(window).load(function() {
$('.focus').focus();
});
$(document).ready(function() {
$('input:not([type=button],[type=submit]), select, textarea').focus(function() {
$(this).addClass('focus');
});
$('input:not([type=button],[type=submit]), select, textarea').blur(function() {
$(this).removeClass('focus');
});
});
我的代码看起来像这样,它甚至适用于嵌套元素,但对我来说看起来有点尴尬,我只是想知道是否有更好/更优化的方法呢?
答案 0 :(得分:1)
您可以链接选择器并将focus
触发器放在dom ready函数中。您甚至可以尝试将要关注的input
元素类型列入白名单,而不是黑名单。
$(document).ready(function(){
$('.focus').focus();
$('input[type=text], select, textarea').focus(function() {
$(this).addClass('focus');
// To save the focused value to a hidden field
$('#id-of-Hidden-Field').val($(this).attr('name'));
}).blur(function() {
$(this).removeClass('focus');
// remove the focus hidden field
$('#id-of-Hidden-Field').val('');
});
});
但是,我不确定如何在回发之前保存哪个元素被聚焦,以便在新页面加载时使用focus
类输出它。如果 以某种方式执行此操作,那么此代码就可以了。