为什么综合触发点击不会聚焦元素?

Ash*_*wal 4 html javascript jquery javascript-events jquery-callback

合成触发点击不会导致焦点切换到元素,但是硬件触发的点击会。

我正在尝试模拟对一个元素(比如带有 tabindex 的 div)的合成点击,该元素在焦点上有一个回调绑定。我不想显式调用该元素的焦点,因为该元素可以通过单击或键盘选项卡获得焦点。

我的JSFiddle

代码

$('button.trigger').click(function(){
    $('div#target').trigger('click');
});

$('button.trigger1').click(function(){
    var event = new MouseEvent('click');
    var target = document.getElementById('target'); 
    target.dispatchEvent(event);
});

$('div#target').click(function(){
    $(this).addClass('selected');
});
Run Code Online (Sandbox Code Playgroud)

HTML :

<div id="target" tabindex="-1"></div>
<button class="trigger">Click to trigger click</button>
<button class="trigger1">Click to dispatch click</button>
Run Code Online (Sandbox Code Playgroud)

CSS :

div{
    height:100px;
    width:100px;
    border:10px solid black;
}

#target:focus{
    background-color:#aaa;
}
.selected{
    border-color:red;
}
Run Code Online (Sandbox Code Playgroud)

Nei*_*eil 5

没有硬件点击这样的东西。

焦点发生在鼠标按下时。

如果鼠标在同一个元素上释放,那么你也会得到一个点击事件。