0

假设我有以下 HTML:

<select>
    <option>a</option>
    <option>a</option>
    <option>a</option>
    <option>a</option>
</select>​

以及以下 javascript:

$("<div>").dialog({
    modal: true
});
//... some other code
$(".ui-widget-overlay").remove(); //remove what makes the modal dialog `modal`

出于某种原因,当我尝试从下拉列表中进行选择时,它不再起作用...

我该如何解决?

我正在使用 Chrome 22.0.1229.94(官方版本 161065)m

演示:http: //jsfiddle.net/maniator/gATRg/

4

1 回答 1

4

创建覆盖时,某些事件会绑定到文档以防止单击。叠加层本身就是一个小部件,对话框存储对它的引用。如果您以“正确”的方式破坏覆盖,那么您将获得您正在寻找的行为。

看到这个小提琴:http: //jsfiddle.net/Waxen/gATRg/6/

代码:

var div = $("<div>")

div.dialog({
    modal: true
});

div.data().dialog.overlay.destroy();
于 2012-10-16T21:09:09.463 回答