Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2023, 19:29
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

скрипт не видет измененый код 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 бы смотрел код который вот прямо сейчас измененый?

Последний раз редактировалось ufaclub, 09.01.2023 в 19:36.
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2023, 19:33
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

$('a.color_item:not(a.blochover)').on("mouseover", function () {

});


так тоже не работает фильтр на класс .blochover
Ответить с цитированием
  #3 (permalink)  
Старый 09.01.2023, 19:52
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Чувак, $(<selector>) получает элемент по селектору <selector> вот прям там, где вызван, тогда, когда вызван. И всё. Он не следит магически ни за какими изменениями, просто получил(или не получил) элемент и всё. Иначе это бы была безумно сложная (и никому не нужня) хрень.

Просто решение в лоб: прям в твоей hover функции проверяй на наличие селектора прежде чем что то делать, типа:
if ($(this).is('.blochover')) return false;
__________________
29375, 35

Последний раз редактировалось Aetae, 09.01.2023 в 19:54.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен скрипт (Выдача уникальных кодов) darkcrash2007 Работа 5 23.11.2013 13:49
Как вставить полученый через аякс html код в DOM? iKillMaxmaxmaximus Общие вопросы Javascript 7 03.07.2013 19:38
Скрипт в скрипт :) Sakyra Общие вопросы Javascript 6 22.05.2013 09:58
Закончить скрипт lamer Работа 14 10.08.2012 04:37
Получить код js-скрипта, находящегося в файле на сервере RomanA Общие вопросы Javascript 4 04.04.2012 09:53