我有一个被赋予 tabindex 的 div,当 div 聚焦(单击或选项卡)时,它会执行以下操作:
向自身插入一个输入,赋予输入焦点
这在 FF、IE 和 Opera 中效果很好
但是在 Chome/Safari 中,它提供了输入焦点,但实际上并没有将光标放在输入中(我知道它提供了焦点,因为 safari/chrome 焦点边框出现了)。
关于发生了什么的任何建议?
我必须在此之后修复密钥处理程序,以便箭头键和退格键也可以工作,如果您愿意,请随时加入。
先感谢您!
这是代码示例:
var recipientDomElem = $("#recipientsDiv");
recipientDomElem[0].tabIndex = 0;
$("#recipientsDiv").focus(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
window.clearTimeout(statusTimer);
recipientDivHandler(code, null);
});
function recipientDivHandler(code, element){
$("#recipientsDiv").append('<input type="text" id="toInput" class="inlineBlockElement rightSpacer" style="border:0px none #ffffff; padding:0px; width:40px;margin-bottom:3px;padding:0; overflow:hidden; font-size:11px;" />');
$("#toInput").focus();
}
关于这一点的另一个奇怪之处在于,通过选项卡切换到 div 将触发 div.focus() 函数并正确地给予输入焦点......这只是失败的点击。我尝试在 div 上放置一个 .click() 函数以执行与焦点相同的操作,但它不起作用。