Функция фокусировки Jquery - PullRequest
       26

Функция фокусировки Jquery

0 голосов
/ 01 декабря 2011

Возможно ли передать элемент в функцию focusout в Jquery?Я хотел бы связать все текстовые поля focusout событие в одном утверждении.Поэтому мое решение было бы сделать их все одним и тем же классом, а затем сделать что-то вроде

$(".class-name").focusout( function() {
//do whatever
});

Но я хотел бы получить значение элемента внутри фокуса, не обращаясь к нему по его идентификаторутак возможно ли что-то подобное?

$(".class-name").focusout( function(this) {
alert( $(this).val() );
});

Ответы [ 3 ]

9 голосов
/ 01 декабря 2011

Предполагая, что вы понимаете магическую природу focusout над blur, , это то, что вы хотите:

$("#the-common-parent-of-all-inputs").focusout( function(e) {
alert( e.target.value );
});

Вам нужно привязать только один focusout к общему родителю элементов ввода. Это единственная причина для использования focusout.

Вы можете не осознавать этого, но когда вы делаете $(".class-name").focusout, он просто привязывается к каждому элементу индивидуально, что наносит ущерб всей цели focusout.

5 голосов
/ 01 декабря 2011

Для чего-то вроде focusout (или любого другого события jQuery) вы можете сделать:

$(".class-name").focusout( function() {
   //`this` refers to the object that was focusouted on
});

this всегда относится к объекту, на котором произошло событие

2 голосов
/ 01 декабря 2011

Вы пробовали это? Это должно определенно работать, но без (!) Параметра "this". «this» автоматически ссылается на текущий элемент, не нужно передавать его функции в качестве параметра. Просто опустите это.

...