2016-01-14 6 views
1

Я использую jQuery и пытаюсь выбрать все элементы в div, кроме некоторых определенных, но я не могу найти способ сделать это. При использовании моего веб-сайта пользователь может прокручивать, перетаскивая мышь, но я хочу, чтобы некоторые элементы внутри containerTable были исключены из этого. Я хотел бы выбрать все элементы в #containerTable и .year, но не те, которые имеют класс .window.Исключить некоторых детей при выборе div с помощью JQuery

Я пробовал функцию фильтра, но это не сработало, я не выбрал ни одного элемента.

$('#containerTable, .year').filter('.window').on({ 
      'mousemove': function(e) { 
       clicked && updateScrollPos(e); 
       //etc..... 
      }); 

Есть ли способ сделать это? Заранее спасибо!

ответ

0

Попробуйте использовать .not() в этом контексте,

$('#containerTable *, .year *').not('.window') 

not исключит элемент, соответствующий с пройденному селектора. Но filter будет отфильтровывать отдельные элементы с селектором.

Согласно вашему новому требованию в комментарии, вы должны использовать делегирование событий.

$('#containerTable, .year').on("mousemove", '#containerTable *:not(.window), .year *:not(.window)', function(e) { 
    clicked && updateScrollPos(e); 
    //etc..... 
}); 

где #containerTable и .year должны быть статическими. Это означает, что он должен быть доступен при привязке события.

+0

Боюсь, что это не сработало ... Возможно, проблема в том, что я загружаю эту функцию до того, как будут созданы какие-либо элементы с классом .window? –

+1

@ e.klara.k Вы можете использовать делегирование делегирования для решения этой проблемы. –

Смежные вопросы