скрипт не видет измененый код DOM
такой код
<a class="color_item">1</a> <a class="color_item">2</a> <a class="color_item">3</a> <a class="color_item">....</a> <a class="color_item">10</a> $(document).ready(function(){ $('a.color_item').hover(function(evet) { event.preventDefault(); .... тут скрипт работает }); $('a.color_item').click(function() { $('a.color_item').removeClass('click'); $(this).toggleClass('click'); $('a.color_item').addClass('blochover'); }); }); т.е по клику добавляется класс .blochover <a class="color_item click blochover">1</a> <a class="color_item blochover">2</a> <a class="color_item blochover">3</a> <a class="color_item blochover">....</a> <a class="color_item blochover">10</a> как сделать чтобы после клика и добавления класса blochover перестало работать условие hover $('a.color_item').hover(function(evet) { ..... }); т.е нужно что то типа $('a.color_item:not(.blochover)').hover(function(evet) { event.preventDefault(); .... тут скрипт работает }); но правило not(.blochover) почему то не работает. Наверно потому что скрипт не читает измененный DOM как сделать что hover бы смотрел код который вот прямо сейчас измененый? |
$('a.color_item:not(a.blochover)').on("mouseover", function () { }); так тоже не работает фильтр на класс .blochover |
Чувак, $(<selector>) получает элемент по селектору <selector> вот прям там, где вызван, тогда, когда вызван. И всё. Он не следит магически ни за какими изменениями, просто получил(или не получил) элемент и всё. Иначе это бы была безумно сложная (и никому не нужня) хрень.
Просто решение в лоб: прям в твоей hover функции проверяй на наличие селектора прежде чем что то делать, типа: if ($(this).is('.blochover')) return false; |
Часовой пояс GMT +3, время: 21:51. |