2012-12-12 11 views
11

Ho usato il seguente codice per avere uguale altezza per rightpos, leftpos e middlepos div:JQuery div.height è sbagliato in Chrome per rendere tutti i div stessa altezza

<script> 

    jQuery.noConflict(); 
    jQuery(document).ready(function($){ 

     // Find the greatest height: 
     maxHeight = Math.max($('#rightpos').height(), $('#middlepos').height()); 
     maxHeight = Math.max(maxHeight, $('#leftpos').height()); 

     // Set height: 
     $('#rightpos').height(maxHeight); 
     $('#middlepos').height(maxHeight); 
     $('#leftpos').height(maxHeight); 

    }) 
</script> 

Determinazione del div più alto utilizzo di questo modo per la pagina principale di http://yaskawa.ir/ funziona bene in Firefox, ma ha problemi in Chrome.


UPDATE 1 dopo la risposta Sparky672 s':

posso vedere che con questo codice, il alert('test here'); alla fine non funziona.

<script> 
    jQuery.noConflict(); 
    //jQuery(document).ready(function($){}); 

    jQuery(window).load(function($){ 

     // Find the greatest height: 
     maxHeight = Math.max($('#rightpos').height(), $('#middlepos').height()); 
     maxHeight = Math.max(maxHeight, $('#leftpos').height()); 

     // Set height: 
     $('#rightpos').height(maxHeight); 
     $('#middlepos').height(maxHeight); 
     $('#leftpos').height(maxHeight); 

     alert('test here'); 
    }) 
</script> 

enter image description here

+0

vedo tutti i div con la stessa altezza (utilizzando Chrome). Qual è il problema? – Kedume

+0

Sto usando chromium in Linux e ha il problema. Carica la foto ora –

+0

Costruisci jsFiddle del tuo problema. 'window.load' sta funzionando bene qui: http://jsfiddle.net/snBLP/3/ – Sparky

risposta

19

Prova window.load() al posto di document.ready() per assicurati che tutte le risorse vengano caricate prima che vengano calcolate le tue altezze.

jQuery(window).load(function($){ 

Documentation:

L'evento carico viene inviato ad un elemento quando e tutti sottoelementi sono stato completamente caricato. Questo evento può essere inviato a qualsiasi elemento associato a un URL: immagini, script, frame, iframe e l'oggetto della finestra .

http://api.jquery.com/load-event/

See DEMO:

http://jsfiddle.net/snBLP/3/

+0

Grazie @ Sparky672, ma non ha funzionato e sembra che questo abbia corrotto il mio codice. L'avviso alla fine non funziona. –

+0

@smhnaji, [non c'è nulla di insolito nella mia risposta] (http://jsfiddle.net/snBLP/2/). Scorri verso il basso [questa pagina e vedi il primo codice di esempio] (http://api.jquery.com/load-event/).Puoi costruire una demo jsFiddle per mostrare il tuo problema? – Sparky

+1

è molto strano ma quando si usa 'jQuery (window) .load', ho visto che' $ 'non funziona (mentre' document.ready' ha lavorato ESATTAMENTE con '$' e lo stesso codice), comunque ho usato ' jQuery' invece di '$' con la tua soluzione. L'esempio live è nella pagina principale di http://yaskawa.ir/ –

-1

$ (document) .ready() non è adatto per il calcolo altezze. $ (Document) .ready() non aspettare che le immagini da caricare, ecc

Io suggerirei di provare

$(window).ready() 

invece ...

+0

Hai quasi ragione. RTM -> http://api.jquery.com/ready/ – Sparky

+0

Puoi per favore darmi i miei punti indietro Sparky? Ho usato personalmente $ (window) .ready() ... ed è buono come $ (window) .load() – rnirnber

+0

Puoi pensare che funzioni alla grande, ma non è la stessa cosa e la tua la risposta non è molto diversa da 'document.ready'. Di nuovo, leggi la documentazione di '.ready()' ... _ "Specifica una funzione da eseguire quando il DOM è completamente caricato." _. Considerando che '.load()' _ "viene inviato a un elemento quando questo e tutti gli elementi secondari sono stati caricati completamente." _ – Sparky

Problemi correlati