/ / focus () nie uruchamia fokusu zdarzenia wywołanego z jQuery (document) .ready - javascript, jquery

focus () nie uruchamia fokusu zdarzenia wywołanego z jQuery (document) .ready - javascript, jquery

Mam stronę z dużym formularzem i jestempróbując przypisać element formularza, który ma fokus podczas ładowania strony. Wygląda na to, że działa tak, że kursor jest umieszczony w wybranym elemencie formularza, jednak zdarzenie ogniskowania nie jest uruchamiane. Jeśli zminimalizuję przeglądarkę, a następnie zmaksymalizuję ją ponownie, fokus zostanie uruchomiony, ale nie w jQuery (document) .ready (). Każda rada doceniona ...

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");
});

Odpowiedzi:

4 dla odpowiedzi № 1

Myślę, że powinieneś umieścić $(":input") w ready funkcja i przed $("#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 dla odpowiedzi nr 2

Tylko zgadnij, ale powinienem zajmować się obsługą zdarzeńprawdopodobnie również zostanie umieszczony w bloku z gotowym dokumentem. Nie jestem pewien, gdzie znajduje się ten skrypt (tj. W głowie lub na końcu ciała), ale jeśli: wejście nie jest obecne podczas wywoływania procedury obsługi zdarzeń, żadne zdarzenie nie zostanie powiązane.

Spróbuj tego:

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();
});