【问题标题】:textarea focus/event propagation issues inside an infobox信息框中的文本区域焦点/事件传播问题
【发布时间】:2012-03-23 19:05:50
【问题描述】:
我在谷歌地图信息框中的事件传播方面遇到了重大问题。有关示例,请参阅this SO 问题。
我现在有一个新的相关问题。当我将 infoBox 选项 enableEventPropagation 设置为 true 时(我认为我必须这样做才能启用 .delegate() 命令才能处理 infoBox 内的元素),然后我无法专注于 infoBox 内的文本字段.通过简单地将 enableEventPropagation 设置为 false (然后禁用我需要的委托),焦点完全按预期工作。有没有办法让我的代表在不将注意力集中在 textareas 上的情况下启用?
请参阅此fiddle 以获取示例
【问题讨论】:
标签:
javascript
jquery
google-maps
google-maps-api-3
【解决方案1】:
您可以将 onclick 事件添加到您的 textarea 并为其设置焦点。只需添加
onClick="this.focus()"
像这样到textarea标签
function data() {
var HTML = "<div id='ib' class='infobox_test'>" +
"<textarea maxlength='249' onClick=\"this.focus()\"></textarea>" +
"</div>";
return HTML;
}
在这里找到的小提琴示例http://jsfiddle.net/pimlinders/ZJSJ3/
【解决方案2】:
我已经测试了一段时间,发现了同样的问题。
eventPropagation = true 时禁用 textarea 元素的焦点和编辑功能;
尝试使用 focusin/focusout 来禁用/启用地图滚动和拖动。
它不像您想要的那样,但如果用户在文本区域中输入,您可以毫无问题地触发这些事件。