2015-08-25 3 views
0

Я пытаюсь сосредоточиться на связи с данным индексом с помощью JS отправки события:JS событие отправки

var link = document.querySelector(".navbar-nav > li:nth-child(" + index + ") > a"); 
var event = new Event("focus"); 
link.dispatchEvent(event); 

Код выше не будет работать в то время как версия JQuery работает нормально:

$(".navbar-nav > li:nth-child(" + index + ") > a").focus(); 

Я тестирую последний Chrome. Что не так с версией JS?

ответ

1

Если вы хотите, чтобы установить фокус, то просто вызовите focus method из йот элемента

function setFocus(index) { 
 
    var link = document.querySelector(".navbar-nav > li:nth-child(" + index + ") > a"); 
 
    link.focus() 
 
}
<ul class="navbar-nav"> 
 
    <li><a href="#">1</a></li> 
 
    <li><a href="#">2</a></li> 
 
    <li><a href="#">3</a></li> 
 
    <li><a href="#">4</a></li> 
 
</ul> 
 
<button onclick="setFocus(1)">1</button> 
 
<button onclick="setFocus(2)">2</button> 
 
<button onclick="setFocus(3)">3</button> 
 
<button onclick="setFocus(4)">4</button>

Диспетчерская событие не будет установить фокус, что будет просто вызвать прилагаемую событие обработчики.

В JQuery вызов метода фокусировки() будет инициировать событие, а также будет вызывать нативный метод поведения, если это необходимо, а потому что работает

+0

облом, я должен закончить книгу JS как можно скорее ;-(Благодаря! – sdvnksv

Смежные вопросы