在IE中单击关闭按钮时,jQueryUI对话框滚动到顶部

jgw*_*gwl 10 internet-explorer jquery-ui jquery-ui-dialog

如果对话框部分偏离页面,则单击对话框标题栏会使IE将页面滚动到对话框的顶部.但是,如果用户也点击了关闭按钮,也会发生这种情况.这意味着用户必须两次单击关闭按钮.

$('#divDialog').dialog({height:500, position:[10, 1000]});
Run Code Online (Sandbox Code Playgroud)

我创建了一个jsfiddle来演示:http: //jsfiddle.net/e9zAK/

重新定位对话框,直到它部分离开屏幕.然后尝试单击关闭按钮.它将滚动页面以适合,但实际上不会关闭对话框.这似乎不会发生在Firefox或Chrome中.

有没有办法覆盖这个功能?我不想使用position:fixed.

blg*_*lgt 6

更多IE的陌生感.它发送mousedown事件,但不发送mouseup,因此不发送click事件.我不知道是什么导致了这种情况,但你可以通过将监听器绑定到mousedown来解决它:

$('.ui-dialog-titlebar-close').mousedown(function() {
    $('#divDialog').dialog('close');
});
Run Code Online (Sandbox Code Playgroud)

这看起来像一个有点讨厌的黑客,但这些似乎是处理IE时的常用方法.