在需要生效的页面的js中创建一个js对象:
1 var refocus = new Object(); 2 refocus.status = 0; //初始化为0,表示不生效 3 refocus.id = ‘‘; //需要恢复焦点的元素id
然后新建一个方法:
1 function setFocus() { 2 $(window).on(‘click‘, function() { 3 var alertExist = $(‘#can‘).children().length > 0; //判断alert框是否存在 4 if (!alertExist) { 5 if (refocus.status == 1) { //我这里设定的1是需要恢复焦点的标识符 6 $(‘#‘+refocus.id).val(‘‘).focus(); 7 refocus.status = 0; 8 } 9 } 10 }); 11 }
上面的方法的意思是,当浏览器发生点击事件,那么检查alert框是否存在,不存在的情况需要检查是否要启动恢复焦点,这个由标识符,refoucs对象的status值决定,当为0时不执行,为1的时候执行,操作的对象就是id所在的元素.
然后在你需要生效的地方后面改变refoucs对象即可:
1 alert(‘我是一个警告框‘); 2 //警告框后面修改 3 refocus.status = 1; 4 refocus.id=‘xxx‘; //需要恢复焦点的input的id 5 6 //也可以直接设定一个方法 7 function setRefocus(id) { 8 refocus.status = 1; 9 refocus.id = id; 10 } 11 //然后在alert后面直接调用这个方法即可 12 alert(‘我是一个警告框‘); 13 setRefocus(‘xxx‘);
我这里的设计是只有一个生效的标识符,直接让input清空,然后恢复焦点,也可以细分多种标识符,可以只恢复焦点,不清空,这个是跟着需求走的.
时间: 2024-10-16 06:32:47