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

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

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

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

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

3 ответа

Решение

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

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

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

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

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

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

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

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

Другие вопросы по тегам