jQuery – Potrebbe essere utile un piccolo aiuto con un caricatore di contenuti

Non sono molto elitario quando si tratta di JavaScript, specialmente la syntax. Quindi sto cercando di imparare. E in questo processo sto cercando di implementare un caricatore di contenuti che rimuove sostanzialmente tutto il contenuto da un div e inserisce il contenuto da un altro div da un documento diverso.

Ho provato a farlo su questo sito: www.matkalenderen.no – Controlla il brutto link qui. Guarda cosa succede?

Ho preso l’esempio da questo sito: http://nettuts.s3.cdn.plus.org/011_jQuerySite/sample/index.html#index

Ma non sono sicuro che questo esempio funzioni effettivamente come penso io. Voglio dire, se il codice cancella semplicemente il contenuto esistente da un div e inserisce il contenuto da un altro div, perché le altre pagine web in questo esempio includono doctype e intestazione, ecc. Non avresti solo bisogno del div e del suo contenuto? Senza tutte le altre cose “in giro”? Forse non capisco come funziona. Ho pensato che funzionasse come se fosse davvero inclusa.

Questo è il mio codice tuttavia:

$(document).ready(function() { var hash = window.location.hash.substr(1); var href = $('#dynloader a').each(function(){ var href = $(this).attr('href'); if(hash==href.substr(0,href.length-5)){ var toLoad = hash+'.html #container'; $('#container').load(toLoad) } }); $('#dynloader a').click(function(){ var toLoad = $(this).attr('href')+' #container'; $('#container').hide('fast',loadcontainer); $('#load').remove(); $('#wrapper').append('LOADING...'); $('#load').fadeIn('normal'); window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); function loadcontainer() { $('#container').load(toLoad,'',showNewcontainer()) } function showNewcontainer() { $('#container').show('normal',hideLoader()); } function hideLoader() { $('#load').fadeOut('normal'); } return false; }); }); 

JQuery .load() ha alcune funzionalità extra per supportare questo.
Puoi vederlo qui nei documenti (guarda “Caricamento dei frammenti di pagina”)

Nel tuo esempio ecco la parte importante: hash+'.html #container' lo spazio prima del #container significa che jQuery prenderà quell’URL, cerca l’elemento con id="container" e recupera solo il contenuto di quell’elemento scartando il resto del pagina. Questo consente a .load() funzionare in modo più generico senza che ciò che si sta recuperando sia stato progettato specificamente per il caricamento Ajax.

Nel tuo caso, penso che devi solo rimuovere #content dalla fine, a meno che tu non stia cercando quell’elemento. Non sta dicendo “cercare contenuti” che è solo l’ID che hanno usato per l’elemento che volevano cercare. Potrebbe essere #divToLoad che sarebbe un esempio più chiaro IMO.