Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2020, 18:51
Профессор
Отправить личное сообщение для face2005 Посмотреть профиль Найти все сообщения от face2005
 
Регистрация: 04.04.2014
Сообщений: 151

отменить поведение ссылки
Добрый день!
ситуация такая - нужно отменить поведение ссылки, она вызывает картинку в модальном окне..
я прописываю так:
$('.imagesBlock a').click(function(e) {
       e.preventDefault();
       return false;
});


это работает. Но проблема в том, что я добавляю класс ей и нужно что бы она уже с этим классом не работала
$('input#visual').change(function(){
    if($(this).is(":checked")) {
      $(".imagesBlock a").addClass("noLink");
    } else {           
      $(".imagesBlock a").removeClass("noLink");
    }
});


и теперь так уже не работает:
$('.imagesBlock a.noLink').click(function(e) {
       e.preventDefault();
       return false;
});


подскажите как правильно поступить?
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2020, 19:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

$('.imagesBlock a').click(function(e) {
       e.preventDefault(); //либо это одно
       return false; //либо это одно
//а два сразу, это "кашу маслом не испортишь", 
//только лишний кусок масла вреден для здоровья 
});
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2020, 19:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это для всех ссылок будет работать, с классом ли они или нет

$('.imagesBlock a').click(function(e) {
e.preventDefault();
....

Вы чего пытаетесь добиться?
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2020, 05:19
Профессор
Отправить личное сообщение для face2005 Посмотреть профиль Найти все сообщения от face2005
 
Регистрация: 04.04.2014
Сообщений: 151

спасибо! мне нужно отменить поведение ссылки после добавления ей класса..
$('input#visual').change(function(){
    if($(this).is(":checked")) {
      $(".imagesBlock a").addClass("noLink");
    } else {           
      $(".imagesBlock a").removeClass("noLink");
    }
});
Ответить с цитированием
  #5 (permalink)  
Старый 01.07.2020, 09:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Понятно, тогда делегируйте обработку их событий родителю:

$('.imagesBlock').on('click', 'a.noLink', function(e) {
       e.preventDefault();
});
Ответить с цитированием
  #6 (permalink)  
Старый 01.07.2020, 09:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

if($(this).is(":checked")) {
      $(".imagesBlock a").addClass("noLink");
    } else {          
      $(".imagesBlock a").removeClass("noLink");
    }


можно заменить на

$(".imagesBlock a").toggleClass("noLink", this.checked);
Ответить с цитированием
  #7 (permalink)  
Старый 01.07.2020, 10:17
Профессор
Отправить личное сообщение для face2005 Посмотреть профиль Найти все сообщения от face2005
 
Регистрация: 04.04.2014
Сообщений: 151

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS и неработающие ссылки Sovka22 Javascript под браузер 1 13.01.2018 15:37
Внутри разворачивающегося по клику DIVа не работают ссылки JavaScriptNoob Элементы интерфейса 2 17.11.2015 00:01
нестандартное поведение ссылки mirra88 Общие вопросы Javascript 2 24.08.2014 20:48
Ссылки внутри другой ссылки Madgeniy Events/DOM/Window 4 11.08.2012 14:58
Отменить поведение по умолчанию bool Общие вопросы Javascript 3 06.03.2009 16:59