我有一个已经给出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();
}
Run Code Online (Sandbox Code Playgroud)
关于这一点的另一个奇怪之处是,跳转到div会触发div.focus()函数并正确地给出输入焦点...它只是失败的点击.我尝试在div上放置一个.click()函数来做与焦点相同的操作,但它不起作用.
这里是我的问题,我选择和做多加入,以获得正确的物品......它拉动了相当数量的行,超过100,000.当日期范围设置为1年时,此查询需要超过5分钟.
我不知道是否可能,但我担心用户可能会将日期范围延长至十年并使其崩溃.
谁知道我怎么能加快速度呢?这是查询.
SELECT DISTINCT t1.first_name, t1.last_name, t1.email
FROM table1 AS t1
INNER JOIN table2 AS t2 ON t1.CU_id = t2.O_cid
INNER JOIN table3 AS t3 ON t2.O_ref = t3.I_oref
INNER JOIN table4 AS t4 ON t3.I_pid = t4.P_id
INNER JOIN table5 AS t5 ON t4.P_cat = t5.C_id
WHERE t1.subscribe =1
AND t1.Cdate >= $startDate
AND t1.Cdate <= $endDate
AND t5.store =2
Run Code Online (Sandbox Code Playgroud)
我不是最好的mysql所以任何帮助将不胜感激!
提前致谢!
UPDATE
这是你要求的解释
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t5 ref …Run Code Online (Sandbox Code Playgroud) 我目前有一个动态填充的可滚动div.
我有一个函数捕获UpArrow和DownArrow keyPresses并更改父div中的类以一次选择一个子(基本上这模仿选择输入)
这就是我想要做的事情:我需要div的可视区域来更改(向下或向上)以显示最近"选定"的子项,但前提是该子项尚未位于父项的可查看区域中.
所以我需要以某种方式获得与父div的scrollHeight相关的可视区域......但我不知道该怎么做...
另外,我不知道如何设置父div的可视区域.
任何帮助将不胜感激!
我目前正在通过.click事件添加输入,然后想要收听此输入上发生的任何按键.但是,附加后不会触发任何事件(即模糊,按键,焦点).有没有人有什么建议?提前致谢!
$("#recipientsDiv").click(function(){
$(this).append('< input type="text" id="toInput" class="inlineBlockElement" style="border:0px none #ffffff; padding:0px; width:20px; overflow:hidden;" />')
$("#toInput").focus();
});
$("input").keypress(function(e){
var inputStr = $(this).html();
$("#inputCopier").text(inputStr);
var newWidth = $("#inputCopier").innerWidth;
$(this).css("width", newWidth);
});
$("#toInput").blur(function(){
$("#toInput").remove();
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过.keyup .keydown,它们不起作用.