Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript document.getElementById(“box”).focus()不关注元素_Javascript_Html_Focus_Dom Events_Riot.js - Fatal编程技术网

Javascript document.getElementById(“box”).focus()不关注元素

Javascript document.getElementById(“box”).focus()不关注元素,javascript,html,focus,dom-events,riot.js,Javascript,Html,Focus,Dom Events,Riot.js,看看是否有人能帮我找出我的元素没有聚焦的原因 我正在使用RiotJS事件和标记。但我不认为这个问题与Riot有关,因为我在DOM和纯JS上尝试了一个元素,但仍然不起作用 在控制台中,当我请求document.activeElement时,它会给我,但它没有聚焦 更奇怪的是,我制作了一个onblur函数,它将重点放在了onblur元素上,并且工作正常!但是当我尝试将它绑定到click[以便通过app.search.box.click();]触发它时,它不起作用 我在谷歌上搜索了很多,并尝试了很多关

看看是否有人能帮我找出我的元素没有聚焦的原因

我正在使用RiotJS事件和标记。但我不认为这个问题与Riot有关,因为我在DOM和纯JS上尝试了一个元素,但仍然不起作用

在控制台中,当我请求
document.activeElement
时,它会给我
,但它没有聚焦

更奇怪的是,我制作了一个
onblur
函数,它将重点放在了onblur元素上,并且工作正常!但是当我尝试将它绑定到click[以便通过
app.search.box.click();
]触发它时,它不起作用

我在谷歌上搜索了很多,并尝试了很多关于如何使用纯JS的建议

我在OSX约塞米蒂。使用最新的Chrome、Firefox和Safari。什么都不走运。请告知

这是我的
search.tag
code:

<search>
  <a href="javascript:void(0)" id="close" onclick={ close }><i class="fa-remove fa"></i></a>

  <div class="elements">

    <input tabindex="0" id="box" type="text" placeholder="Search things" onkeyup={ search } onclick={ focusBox } />

    <span id="loading" class="hide"><i class="fa fa-gear fa-spin"></i></span>

    <a id="searchButton" href="javascript:void(0)" name="search">
      <i class="fa fa-arrow-right"></i>
    </a>

  </div>


  <script>
    this.search = function(event) {
      app.search.trigger('search', event, box.value);
    }

    this.close = function(event) {
      app.search.trigger('close');
    }

    this.focusBox = function(event){
      var element = event.target || event.srcElement;
      window.setTimeout(function() {element.focus()}, 1000);
    }


  </script>

</search>

除非我误解了你的目标,否则它在这里似乎工作得很好:单击输入,然后单击输出,结果输入在1秒后重新获得焦点。你想在页面加载时立即聚焦吗?在某个事件之后,例如:打开模式,或打开非画布导航。
search.open = function(event) {
  search.container.classList.remove('hide');
  search.container.classList.remove('closed');
  search.box.focus();
}