Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   отменить поведение ссылки (https://javascript.ru/forum/jquery/80619-otmenit-povedenie-ssylki.html)

face2005 30.06.2020 18:51

отменить поведение ссылки
 
Добрый день!
ситуация такая - нужно отменить поведение ссылки, она вызывает картинку в модальном окне..
я прописываю так:
$('.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;
});


подскажите как правильно поступить?

laimas 30.06.2020 19:23

$('.imagesBlock a').click(function(e) {
       e.preventDefault(); //либо это одно
       return false; //либо это одно
//а два сразу, это "кашу маслом не испортишь", 
//только лишний кусок масла вреден для здоровья 
});

laimas 30.06.2020 19:26

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

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

Вы чего пытаетесь добиться?

face2005 01.07.2020 05:19

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

laimas 01.07.2020 09:20

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

$('.imagesBlock').on('click', 'a.noLink', function(e) {
       e.preventDefault();
});

laimas 01.07.2020 09:56

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


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

$(".imagesBlock a").toggleClass("noLink", this.checked);

face2005 01.07.2020 10:17

Спасибо!


Часовой пояс GMT +3, время: 02:57.