点击焦点和焦点焦点有什么区别?

时间:2009-04-12 05:42:25

标签: javascript html internet-explorer focus

我遇到了一个结构复杂的麻烦网页。如果鼠标单击 DIV ,则一切正常。但是,如果它是由javascript(即divElement.focus)聚焦的话。布局变得凌乱。这只发生在IE7 / 8中。

那么,IE中的点击焦点和焦点焦点之间有什么区别吗?

3 个答案:

答案 0 :(得分:3)

触发Javascript focus事件不会触发click事件。在没有看到相关代码的情况下,我猜测在你发起click事件的情况下,某些focus处理程序没有被调用。

您可以尝试触发click

var clickEvent;
if(document.createEvent) {
    clickEvent = document.createEvent('click');
    clickEvent.initMouseEvent('click');
    divElement.dispatchEvent(clickEvent);
} else {
    // Semi-pseudocode for IE, not tested, consult documentation if it fails
    clickEvent = document.createEventObject();
    divElement.fireEvent('onclick');
}

或者如果你是jQuery的话:

$(divElement).click();

Prototype也有类似的解决方案(搜索Event.simulate)。

答案 1 :(得分:0)

Focus动作的定义是将输入(键盘或鼠标)带到某个元素,通常是输入字段。当元素获得焦点时,会触发OnFocus事件。当它失去焦点时,会触发OnBlur事件。

您通常通过点击获得的是OnClick事件,该事件与上述两个事件无关。

答案 2 :(得分:0)

  

这只发生在IE7 / 8中。

嗯,那我肯定这是一个IE相关的bug。不奇怪。如果涉及合法的Javascript事件,那么它们应该在所有浏览器中统一触发。