遇到Javascript焦点问题()

时间:2013-12-11 01:37:52

标签: javascript

有3个程序,Pers1,Pers2,Pers3。 Pers1和Pers2有填写的表格,Pers3会生成一份报告。 Pers2包括Pers1,Pers3包括Pers2。因此,如果你得到报告,Pers1和Pers2仍然会显示,如果你不喜欢你的报告,你可以调整你的表格。所有这些都是用ColdFusion编写的。

有Javascript可以将重点放在所有3个程序中,并且工作正常。

在Pers3中,可以单击报告的标题并隐藏Pers1和Pers2表单。这允许用户在没有前面的表格的情况下打印报告。要再次显示Pers1和Pers2,请再次单击Pers3中的标题。

一切正常,但是当我点击标题返回Pers1和Pers2时,我在Pers3中失去了焦点。我尝试了很多东西,但到目前为止还没有成功。用于打开和关闭Pers1和2的Javascript,包括我重新聚焦的尝试(这里有3个div必须关闭/打开):

function hider() {

var buttonrep2 = document.getElementById('shutoff'); 
var buttonrep1 = document.getElementById('hiderep1');
var buttontop = document.getElementById('hidereptop');

      if(buttonrep2.style.display != 'none' ) {
         buttonrep2.style.display = 'none';} //shut off

      else {
             buttonrep2.style.display = ''; }//turn on

      if(buttonrep1.style.display != 'none' ) {
         buttonrep1.style.display = 'none';}

      else {

             buttonrep1.style.display = '';}


      if(buttontop.style.display != 'none' ) {
         buttontop.style.display = 'none';}

      else {
             buttontop.style.display = ''};                

 thefocus('reporthead')
}//end of function hider 

重新聚焦,这在其他任何地方都可以正常工作:

  function thefocus(id) {   
  document.getElementById(id).focus();
  }

有没有人知道我可能做错了什么,或者如何让它工作?

1 个答案:

答案 0 :(得分:1)

如果您为HTML提供tabindex属性,则可以专注于非输入元素:

<h1 tabindex="0" id="reportHead">Report Header</h1>

然后你可以使用

document.getElementById('reportHead').focus();