2013-09-06 9 views
22

Ho il seguente codice HTML:Javascript-Impostazione immagine di un DIV sfondo tramite un parametro di funzione e la funzione

<div id="tab1" style="position:relative; background-image:url(buttons/off.png); 
    <a href="javascript:ChangeBackgroundImageOfTab('tab1', 'on');"> 
     <img id="DivBtn1" name="DivBtn1" src="buttons/text.png" > 
    </a> 
</div> 

e la seguente Javascript:

function ChangeBackgroungImageOfTab(tabName, imagePrefix) 
{ 
    document.getElementById(tabName).style.background-image= 'url("buttons/" + imagePrefix + ".png")'; 
} 

Il problema si pone quando cerco di impostare l'immagine di sfondo delle schede tramite una chiamata a getElementByID: ora so come creare un URL dinamico che utilizza il parametro passato, insieme ad altri valori codificati. In questo caso, stiamo scambiando l'immagine di sfondo OFF con l'immagine di sfondo ON.

Come posso fare questo? C'è un modo per usare una variabile javascript, assegnare il percorso completo ad esso, quindi inviarlo nella chiamata come percorso dell'immagine di sfondo?

risposta

38
+2

Perché "" è incluso nella stringa? E non l'avevo visto fino ad ora, ma non si può avere '-' in una proprietà, o variabile, nome (sarà interpretato come operatore), usa camel-case: 'backgroundColor'. –

+0

Sì, buon punto :) – TyMayn

+0

creando la stringa seperatly ha funzionato, mettendolo in linea non ha funzionato, ma compilato ed eseguito correttamente senza errori.grazie per l'aiuto! –

8

Da quello che so, la sintassi corretta è:

function ChangeBackgroungImageOfTab(tabName, imagePrefix) 
{ 
    document.getElementById(tabName).style.backgroundImage = "url('buttons/" + imagePrefix + ".png')"; 
} 

Quindi, fondamentalmente, getElementById(tabName).backgroundImage e dividere il come:

"cssInHere('and" + javascriptOutHere + "/cssAgain')"; 
+0

getelementbyId non ha bisogno di #divname solo il nome dell'ID senza # –

Problemi correlati