jQuery Ajax laden und getScript

Ich versuche meine Website so, dass der Inhalt in der main-Gebiet geladen, die über javascript (einige Seiten eine Weile dauern zu Rendern). Aber, ich habe ein kleines logisches problem bei der Verwendung von jQuery.load(), jQuery.getScript und jQuery.ajax().

Ich muss in der Lage sein zu laden bestimmte javascript-Dateien per getScript, so dass ich diese Funktionen usw. innerhalb des geladenen Inhalts.

  • index.php - Die main-Datei angezeigt wird (enthält auch #be)
  • js/script.js - Die Datei mit der load-code
  • js/*.js - Mehrere javascript-Dateien, die ich brauche, um in der Lage sein, um den Einsatz im #maincontent-nach dem laden
  • load.php - Die Datei, in die geladen wird #maincontent

script.js:

$(document).ready(function() {
$('#loading').fadeIn('fast');
$('#maincontent').load('load.php', function() {
    $('#loading').fadeOut('fast');
    $('#maincontent').fadeIn('slow');
});

$('#navigation li a').click(function() {
    $('#maincontent').fadeOut('fast');

    $.getScript('js/jquery.contextMenu-1.01.js');
    $.getScript('js/jquery-1.5.1.min.js');
    $.getScript('js/jquery-ui-1.8.12.custom.min.js');
    $.getScript('js/jquery.qtip-2.0.0.min.js');
    $.getScript('js/ajax.js');

    $.ajax({
        method: 'get',
        url: 'load.php',
        data: 'page=' + $(this).attr('rel'),
        beforeSend: function() {
            $('#loading').fadeIn('fast');
        },
        complete: function() {
            $('#loading').fadeOut('fast');
        },
        success: function(html) {
            $('#maincontent').fadeIn('slow');
            $('#maincontent').html(html);
        }
    });
});

$.getScript('js/jquery.contextMenu-1.01.js');
$.getScript('js/jquery-1.5.1.min.js');
$.getScript('js/jquery-ui-1.8.12.custom.min.js');
$.getScript('js/jquery.qtip-2.0.0.min.js');
$.getScript('js/ajax.js');
});

Wie Sie sehen können, bin ich versucht zu laden load.php ersten ohne URL-Parameter und der Interaktion durch den Benutzer. Obwohl load.php richtig geladen ist jedes mal, das gleiche kann nicht gesagt werden, für den javascript-code. Manchmal funktioniert es, manchmal muss ich die Seite aktualisieren, ein paar mal, bevor ich eine saubere Konsole (kein Fehler).

Den Fehler in der Konsole, schlage mich, dass der js-code nicht richtig geladen werden, bevor es verwendet wird im inneren load.php. Dies gilt insbesondere, wenn load.php dauert eine Weile (getestet mit PHP sleep(5) - Funktion).

Lassen Sie mich wissen, wenn ich etwas verdeutlichen 🙂

  • Wenn Sie mit jQuery laden Sie Ihre PHP -, dann müssen Sie nicht brauchen, um es wieder über getScript. Ich empfehle, das laden alle Ihre javascript beim laden der Seite und nur das hinzufügen von Inhalten via load(), vermeiden Sie insbesondere das re-inklusive frameworks und plugins.
InformationsquelleAutor John Doe | 2011-04-30
Schreibe einen Kommentar