为什么综合触发点击不会集中元素?

时间:2014-05-05 09:45:53

标签: javascript jquery html 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');
});

HTML

<div id="target" tabindex="-1"></div>
<button class="trigger">Click to trigger click</button>
<button class="trigger1">Click to dispatch click</button>

CSS

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

#target:focus{
    background-color:#aaa;
}
.selected{
    border-color:red;
}

1 个答案:

答案 0 :(得分:3)

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

鼠标按下时会发生焦点。

如果鼠标是在同一元素上释放的,那么您也会收到点击事件。