【发布时间】:2014-01-16 15:30:59
【问题描述】:
问题是这样的:
打开一个对话框。我单击对话框的输入字段以打开一个绝对位于对话框上方的 div。无法与输入交互。
这是Jsfiddle上的示例
您可以将鼠标悬停在输入上,鼠标光标将变为“I”图标。您甚至可以与绝对定位的 div 上的关闭锚标记进行交互。这不是 z-index 问题。它适用于 jQuery UI 1.9 及更早版本。奇怪的是,在将绝对 div 添加到 DOM 之后,如果在 body html 的末尾附加一个空 div(使用 firebug 实时编辑代码),输入就可以了。
有什么想法吗?
提前致谢,
邦特克
$('#open_dialog').click(function (event) {
var dialog_html = '<div id="dialog_body">' +
'<input type="text" name="test1"/>' +
'</div>';
$(dialog_html).dialog({
title: 'WTF Test',
height: 110,
width: 300,
modal: 'true',
close: function () {
$(this).remove();
$('#test_div').remove();
}
});
//dialog input click
$('input[name=test1]').click(function (event) {
var html = $('<div id="test_div" style="border: 1px solid red; z-index: 10000; position: absolute; left: 45%; top: 60%; width: 235px; height: 100px; background-color: blue;"><input name="foobar"/><a id="test_close" style="color: white;" href="#">close</a><br/><span style="color: white">super awesome text</span></div>'),
body = $(document.body);
if ($('#test_div').length === 0) {
//append div to body
html.appendTo(body);
//add close functionality to test_div
$('#test_close').click(function (event) {
event.preventDefault();
//remove test_div from DOM
$(event.currentTarget).parent().remove();
});
}
});
});
【问题讨论】:
-
我没有任何解决方案,但在测试您的小提琴时,我能够确认您的发现,并获得了更多数据点。我将输入设置为一个复选框,它能够很好地处理点击事件。即使使用 chrome 调试器将文本框的状态设置为:focus,它也没有获得焦点,所以问题似乎特定于键盘焦点,但这就是我所拥有的。
标签: javascript jquery jquery-ui