У меня есть 10 кнопок с различным изображением и текстом. У меня есть каждая кнопка для включения/выключения, и если нажата другая кнопка, я хочу, чтобы активная кнопка была выключена. Я борюсь с последним.Заменить окончание на несколько img src
var x = 300;
//port1
$('#port1').click(
function(){
var src = $('.image', this).attr('src');
//var srcs = $(this).attr('src');
if($(this).hasClass("highlight")) {
$('.butt').removeClass('highlight');
$('.image', this).attr('src', src.replace(/_dark(\.[^.]+)?$/, '_light$1'));
$('.p1').fadeOut(x);
}
else{
$('.butt').removeClass('highlight');
// $('.butt').attr('src').replace('_dark.png', '_light.png');
$('.butt img').each(function() {
var src2 = $('.image').attr('src').replace(/_dark(\.[^.]+)?$/, '_light$1');
$('.image').attr('src', src2);
});
$('.talk').fadeOut(x);
$(this).addClass('highlight');
$('.image', this).attr('src', src.replace(/_light(\.[^.]+)?$/, '_dark$1'));
$('.p0').fadeOut(x);
$('.p1').fadeIn(x);
}
});
Проблема Я бегу в том, что при нажатии на кнопку, она меняет СРК на всех остальных кнопок, чтобы быть точно так же, как этот, и не просто изменить окончание на другие источники '_темно'. Я думал, что добавление этой функции «каждый» поможет, и это не так.
Edit: Я новичок в кодировании, но я попытался jsfiddle: http://jsfiddle.net/messedUP90/yxjoxe41/ Случайные компьютеры, которые появляются был эффект я иду за и код, который я написал, чтобы сделать это, прежде чем я вспомнил, что каждая икона будет отличаться , Посмотрите на первую кнопку под названием «un», где происходит ошибка, о которой я говорю.
Я попытался выполнить jsfiddle. Я надеюсь, что это работает: http://jsfiddle.net/messedUP90/yxjoxe41/ Я ранее пытался создать отдельный div с фоном img в качестве значков ... но я решил против него. я не помню, почему. это то, что вы бы порекомендовали? – Kay
да и нет. Ваш пример, кажется, работает просто прекрасно, единственное, что нужно помнить, это то, что чем больше строк кода у вашего скрипта, тем больше он должен быть загружен ... всеми. Поэтому старайтесь делать умные вещи с помощью JQuery, которые нацелены на множество вещей одновременно. У вас много чего одинаково в каждой функции '.click()' в вашей скрипке, поэтому каждый из них не должен быть выбран id '$ (" # ")'. Вместо этого целевые все они сразу и в каждом обратном вызове ссылаются на себя с '$ (this)' – GoreDefex