2013-09-01 2 views
0

을 변경하지 않습니다 이것은 선택 상자의 HTML 코드 :자바 스크립트가 배경 이미지

<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

문자열 연결이 문제입니다. ' – undefined

+0

'console.log' FTW .. –

+0

이미 jQuery를 사용하고 있다면, 적절하게 사용하지 않는 것이 좋습니다. ("http://mk7vrlist.altervista.org/backgrounds/"+ num + "') 이벤트 핸들러 ? – 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 (당신이 돈으로 두 번째 옵션은 아무것도 변경하지 않습니다 ' 해당 URL에 대한 이미지가있는 것 같습니다.)

+0

좋은 답변입니다. 그것은 크롬에서도 효과가 있습니까? 모질라를 사용하고 있습니다. 언젠가 크롬에 문제가 있습니다. –

+1

문제는 첫 번째 큰 따옴표 안에 num 변수를 연결했기 때문입니다. 자바 스크립트에는 문자열 보간법이 없으므로이 답변에서와 같이 작은 따옴표를 생략하거나 '... /' "+ 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; 
} 
관련 문제