jQuery: как найти элементы * без * определенного класса - PullRequest
6 голосов
/ 26 апреля 2010

Почему это не получается ...

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

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

В данный момент входные значения всегда сокращаются - тест .not ('input.hadFocus') не может остановить выполнение.

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

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

Спасибо за любой ум - ура, -Алан

Ответы [ 2 ]

5 голосов
/ 31 мая 2010

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

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

$('div.contactAperson input:not(.hadFocus)').live('focus', function() {
    $(this).attr('value', '' );
});
4 голосов
/ 26 апреля 2010
$( 'div.contactAperson > :input' ).not( ':input.hadFocus' ).focus(function() {
    $(this).attr('value', '' );
});

удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...