我遇到了一个结构复杂的麻烦网页。如果鼠标单击 DIV ,则一切正常。但是,如果它是由javascript(即divElement.focus)聚焦的话。布局变得凌乱。这只发生在IE7 / 8中。
那么,IE中的点击焦点和焦点焦点之间有什么区别吗?
答案 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)
嗯,那我肯定这是一个IE相关的bug。不奇怪。如果涉及合法的Javascript事件,那么它们应该在所有浏览器中统一触发。这只发生在IE7 / 8中。