2013-09-01 2 views
0

Это HTML код в поле выбора:Javascript не меняет фоновое изображение

<select> 
<option onclick="bg('1.png');">Skin 1</option> 
<option onclick="bg('2.png');">Skin 2</option> 
</select> 

и здесь вы видите функцию:

function bg(num) { 
document.body.style.backgroundImage="url('http://mk7vrlist.altervista.org/backgrounds/' + num + ')"; 
} 

Когда параметр Skin 1 выбран, например, Я хочу изменить фон моей страницы. Но когда я нажимаю на нее, что-то происходит. Есть идеи?

Ссылка правильное изображение: 'http://mk7vrlist.altervista.org/backgrounds/1.png'

+1

Проблема с конкатенацией строк. '' url ('http://mk7vrlist.altervista.org/backgrounds/ "+ num +"') ";' – undefined

+0

'console.log' FTW .. –

+0

Если вы уже используете jQuery, почему бы не использовать надлежащее обработчик события ? – adeneo

ответ

5

Попробуйте это вместо того, чтобы (не JQuery не нужны):

<select onchange="bg(this[this.selectedIndex].value)"> 
    <option value="1.png">Skin 1</option> 
    <option value="2.png">Skin 2</option> 
</select> 

function bg(num) { 
    document.body.style.backgroundImage = "url(http://mk7vrlist.altervista.org/backgrounds/" + num + ")"; 
} 

jsFiddle example (обратите внимание, что второй вариант не меняет ничего, как вы не» t, похоже, имеет изображение для этого URL-адреса.)

+0

Хороший ответ. Он работает и на хроме? Я использую Mozilla, у меня проблемы с chrome sometime –

+1

Проблема заключалась в том, что вы связывали переменную 'num' внутри первого набора двойных кавычек. JavaScript не имеет строковой интерполяции, поэтому вы можете опустить одинарные кавычки, как в этом ответе, или добавить '.../'" + num + "' ...', чтобы правильно завершить и запустить строковые литералы , – dwerner

+1

Да, благодаря его ответу я исправил свою проблему. –

1
<select onchange="bg(this[this.selectedIndex].value)"> 
    <option value="1.png">Skin 1</option> 
    <option value="2.png">Skin 2</option> 
</select> 

function bg(num) { 
    var img = "http://mk7vrlist.altervista.org/backgrounds/" + num + ".png"; 
    var url = "url(" + img + ")" 
    document.body.style.backgroundImage = url; 
} 
Смежные вопросы