Функция фокусировки 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" автоматически ссылается на текущий элемент, нет необходимости передавать его в функцию в качестве параметра. Просто опустите это.