我有一个包含大表单的页面,我正在尝试分配页面加载时具有焦点的表单元素。似乎工作在于光标位于选定的表单元素中,但是不会触发焦点事件。如果我最小化浏览器然后再次最大化,则会触发焦点事件,但不会触发jQuery(document).ready()。任何建议赞赏...
jQuery(document).ready(function()
{
console.log("call focus");
jQuery("#tbl_Employees").find(".employeeinfo:eq(" + IndexEmp + ")").find("tr#trSequence").find("td:eq(5)").children(":first").focus();
});
jQuery(":input").focus(function(e)
{
console.log("enter focus");
});
答案 0 :(得分:4)
我认为你应该将$(":input")
放在ready
函数中$("#tbl_Employees")
jQuery(function() { // <-- Same exact thing as `jQuery(document).ready(function () {`, just much shorter. Welcome to jQuery
jQuery(':input').focus(function(e) {
console.log("enter focus");
});
console.log("call focus");
jQuery("#tbl_Employees").find(".employeeinfo:eq(" + IndexEmp + ")").find("tr#trSequence").find("td:eq(5)").children(":first").focus();
})
答案 1 :(得分:1)
只是一个猜测,但你的事件处理程序也应该放在文档就绪块中。我不确定这个脚本的位置(即在头部或身体的末端)但是如果:调用事件处理程序时不存在输入,则不会绑定任何事件。
试试这个:
jQuery(document).ready(function () {
jQuery(':input').focus(function (e) {
console.log("enter focus");
});
console.log("call focus");
jQuery("#tbl_Employees").find(".employeeinfo:eq(" + IndexEmp + ")").find("tr#trSequence").find("td:eq(5)").children(":first").focus();
});