2015-03-12 2 views
0

Да, это может выглядеть безумно, но я просто хочу знать, возможно ли это или нет. У меня есть что-то вроде этого:Изменение кода javascript с javascript

$('button').click(function(){ 
    if(variable == 10){ 
     $('img').attr('src','img/image.jpg'); 
    } else { 
     $('img').attr('src','img/image-2.jpg'); 
    } 
}); 

Теперь проблема есть у меня есть более чем 2 фотографии (у меня есть 10 категорий 2 фото каждый), но я не хочу, чтобы создать 10 переменных и скопировать этот блок кода 10 раз. Поэтому я задался вопросом, можете ли вы сделать что-то вроде изменения этой части «img/image ... jpg» с другой командой javascript или так.

+0

'var images = {10: 'image.jpg', ...,}, defaultImg = 'image-2.jpg;' – zerkms

+0

Нажми на кнопку, что вам нужно? –

ответ

2

Одним из решений является использование переменной как части имени изображения, например.

$('img').attr('src','img/image-' + variable + '.jpg'); 
1

Это зависит от имен ваших изображений - если вы контролируете имена, то вы можете заставить их работать лучше с динамическими переменными, используя концепцию, называемую конкатенация:

var num = 2; 
$('img').attr('src', 'img/image-' + num + '.jpg'); 

Этот код будет оказывать img/image-2.jpg. Если вы измените переменную num, источник изображения изменится соответствующим образом.

+1

Я понял, что вы сказали, но я не знаю, как его выполнить, поэтому я буду делать это: вместо того, чтобы ставить '$ ('img'). Attr ('src', 'img/image.jpg '); 'внутри я поместил бы переменную, чтобы я мог изменить значение переменной, спасибо в любом случае за ответ! – mrpinkman

+0

, если ваши имена изображений находятся в строке, решает ли петля проблему? –

Смежные вопросы