看看是否有人可以帮助我弄清楚为什么我的元素没有聚焦。
我正在使用RiotJS事件和标签。但我不认为这个问题与Riot有关,因为我尝试使用DOM上的元素和纯JS,但它仍然不起作用。
在控制台中,当我要求document.activeElement
时,它会给我<input tabindex="0" id="box" type="text" placeholder="Search">
,但它没有集中注意力。
更奇怪的是,我创建了一个onblur
函数,重点关注元素onblur并且它有效!但当我尝试将其绑定到点击[所以我可以通过app.search.box.click();
]触发它时,它不起作用。
我用谷歌搜索了很多关于如何用纯JS做这个的建议。
我在OSX优胜美地。使用最新的Chrome,Firefox和Safari。任何事都没有运气。请指教。谢谢!
这是我的search.tag代码:
<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>
这是触发打开的search.js代码:
search.open = function(event) {
search.container.classList.remove('hide');
search.container.classList.remove('closed');
search.box.focus();
}