我遇到了一个麻烦的网页,该网页的结构很复杂。如果用鼠标单击一个DIV,则一切正常。但是,如果它是由javascript(即divElement.focus)关注的。布局变得凌乱。这仅在IE7 / 8中发生。
那么,IE中的“单击焦点”和“按JavaScript焦点”之间有什么区别吗?
最佳答案
触发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();
原型也有类似的解决方案(搜索Event.simulate)。