jQuery: Как найти элементы *без* определенный класс

Почему это перестало работать...

$( 'div.contactAperson input' ).not( 'input.hadFocus' ).focus(function() {
    $(this).attr('value', '' );
});

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

Прямо сейчас входные значения всегда становятся убитыми - тесту .not ('input.hadFocus') не удается остановить выполнение.

Btw, предшествуя вышеупомянутому коду является следующим кодом, который хорошо работает:

$( 'div.contactAperson input' ).focus(function() {
    $( this ).addClass( 'hadFocus' );
});

Спасибо за любой ум - аплодисменты, - Alan

6
задан hippietrail 2 December 2012 в 02:44
поделиться

2 ответа

$( 'div.contactAperson > :input' ).not( ':input.hadFocus' ).focus(function() {
    $(this).attr('value', '' );
});

удачи

4
ответ дан 10 December 2019 в 02:44
поделиться

Вам нужно, чтобы обработчик запускался в зависимости от текущего состояния элемента - не то состояние, когда он был связан. Возможно, вам потребуется использовать привязку live .

Попробуйте что-то вроде этого:

$('div.contactAperson input:not(.hadFocus)').live('focus', function() {
    $(this).attr('value', '' );
});
5
ответ дан 10 December 2019 в 02:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: