скрипт не видет измененый код 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, время: 14:40. |