我使用普通的JavaScript(没有JQuery等)来显示半模式对话框,其中包含一个小的FORM 我现在设置的方式,如果用户点击页面的不同部分,同一个处理程序将显示不同的对话框,但如果用户单击对话框中的INPUT字段,则单击传播/冒泡直到处理程序,并且INPUT失去焦点 - 输入它的唯一方法是将TAB输入它,这不是完全理想的!
有关如何避免这种情况的任何建议吗?
答案 0 :(得分:2)
您可以将click
处理程序附加到对话框的主要元素,并在此时停止传播:
theDialogMainElement.addEventListener("click", function(e) {
e.stopPropagation();
}, false);
这样,在对话框中点击就不会传播到页面上干扰的点击处理程序。
如果您需要支持不具有addEventListener
和stopPropagation
的旧版IE(IE8及更早版本),see this other answer用于跨浏览器事件连接功能(它也提供stopPropagation
。
答案 1 :(得分:-4)
您可以在您引用的特定输入元素上调用.focus()。 http://www.w3schools.com/jsref/met_html_focus.asp