Смена картинки по клику с помощью метода attr()

357
30 января 2017, 19:49

Всем доброго дня.

Есть такой скрипт:
Необходимо сделать смену картинок по клику. Нашла в сети пример и написала код по нему. У меня он не работает и в консоли выводит ошибку. Скажите пожалуйста как можно исправить код? Для более лучшего понимания поясню - .slide-225 - мой класс картинки, и src - пути изображений которые я пытаюсь заменить. Буду рада любому замечанию и совету:)

$(".slide-225").bind("click", function() {
  var src = ($(this).attr('src="/wp-content/uploads/2017/01/Mirdif-2-960x640.jpg"') === "Mirdif-2-960x640.jpg") ? "Mirdif-full-960x640.jpg" : "Mirdif-2-960x640.jpg";
  $(this).attr('src="/wp-content/uploads/2017/01/Mirdif-2-960x640.jpg"', src);
}); 
Answer 1

Вы не правильно получаете и записываете атрибут.

Для получения используется запись такого типа: $(element).attr(attribute);
Для назначения используется запись такого типа: $(element).attr(attribute, value);

В любом случае, название атрибута и его значение указывается в кавычках, если конечно, вы не указываете название атрибута или его значение переменной или каким-то вычислениями в JS

Исправленная версия:

$(".slide-225").bind("click", function() {
  var src = $(this).attr('src') ? "Mirdif-full-960x640.jpg" : "Mirdif-2-960x640.jpg";
  $(this).attr('src', src);
}); 
READ ALSO
Найти max сумму элементов пирамиды

Найти max сумму элементов пирамиды

Есть такая пирамида массивов:

263
Не работает setInterval

Не работает setInterval

Вот в этом коде не работает setInterval()Функция вызывается сама по себе, но setInterval не работает:

348
Не могу взять местоположение

Не могу взять местоположение

Всем приветЕсть карта и на ней Геокардинация

313
resize и разрешение браузера

resize и разрешение браузера

Не могу понять в чем проблема с работой кодаВсе работает отлично, пока я не сменю на iPad (в принципе любой планшет) разрешение, то есть не покручу...

331