2016-08-04 7 views
13

Ich verwende Codepress in einem CMS, um Dateien im Dateisystem zu bearbeiten. Alles funktioniert gut, aber beim Versuch, die gleiche Seite mit der jQuery load() - Funktion zu laden, scheint der Codepress zu brechen.So verwenden Sie jQuery zum Laden von Codepress

Mein JavaScript-Code sieht so aus, dass die PHP-Datei mit Codpress geladen wird, aber Codepress scheint nicht zu feuern.

$('.content').on('click', '#fileSystemWrap a', function (event) { 
    event.preventDefault(); 
    var fileName = $(this).data('file'); 
    $('#rightColWrap').fadeOut(150, function(){ 
     $('#rightColWrap').load('/?url=developer/edit-file.php&open=' + fileName, function(){ 
      $('#rightColWrap').fadeIn(150); 
     }); 
    }); 
}); 

Graben in codepress.js ich dies am Ende der Datei sehen, aber ich bin nicht zu verstehen, wenn es etwas, das ich zu meinem ersten auf Click-Ereignis listner Skript hinzufügen könnte codpress Feuer zu helfen.

if(window.attachEvent) window.attachEvent('onload',CodePress.run); 
else window.addEventListener('DOMContentLoaded',CodePress.run,false); 

Hier ist der Link auf Source zu Codepress https://sourceforge.net/projects/codepress/

+0

versuchen, diese nach dem Load-Methode abgeschlossen ist, und fügen Sie nach $ ('# rightColWrap') fadeIn (150) diesen Code CodePress.initialize ('neuen'). – user5200704

+0

Das hat nicht funktioniert, es hat das Klickereignis beendet. – drooh

+0

was du hast Editor Ergebnis dieser Code. Aber du hast das Klickereignis passiert. – user5200704

Antwort

0

Die Antwort war, dass wir brauchten Klammern CodePress.run und nach dem fadeIn() Aufruf hinzuzufügen.

$('#content').on('click', '#fileSystemWrap a', function (event) { 
    event.preventDefault(); 
    var fileName = $(this).data('file'); 
    $('#content').fadeOut(150, function(){ 
     $('#content').load('/?url=developer/edit-file.php&open=' + fileName, function(){ 
      $('#content').fadeIn(150, function(){ 
       CodePress.run(); 
      }); 
     }); 
    }); 
}); 
7

Logik zu sein: wenn die Daten geladen werden, wollen wir Codepress initialisieren. So sollte Ihr Code wie folgt aussehen:

$('.content').on('click', '#fileSystemWrap a', function (event) { 
    event.preventDefault(); 
    var fileName = $(this).data('file'); 
    $('#rightColWrap').fadeOut(150, function(){ 
     $('#rightColWrap').load('/?url=developer/edit-file.php&open=' + fileName, function(){ 
      CodePress.run(); 
      $('#rightColWrap').fadeIn(150); 
     }); 
    }); 
}); 

Wenn dies nicht bitte Fehler von der Konsole zur Verfügung stellen nicht funktioniert.

Bearbeiten: korrigierte Antwort, gesehen Robson Franças Kommentar. Zuletzt Problem war, dass CodePress.run; geschrieben wurden, sollten CodePress.run();

+0

Das hat nicht funktioniert. Es gab keinen Fehler in der Konsole, außer dass ein unausgeglichener Baum unter Verwendung von document.write() geschrieben wurde, der das Reparieren von Daten aus dem Netzwerk verursachte. Jedoch war ich in der Lage, einige der codepress.js-Code neu zu schreiben, um diesen Fehler zu entfernen, jedoch wird es immer noch nicht nach der load() -Funktion Datei. Ich versuche das immer noch herauszufinden. – drooh

+0

Ich bin immer noch perplex von diesem Problem. Ich weiß, dass die codpress.js $ (document) nicht verwendet .ready (function() {Ich denke immer noch, dass es etwas mit dieser Codezeile in codespress.js zu tun hat if (window.attachEvent) window.attachEvent ('onload ', CodePress.run); else window.addEventListener (' DOMContentLoaded ', CodePress.run, false); – drooh

+2

Die obige Lösung scheint korrekt zu sein. Allerdings würde ich Parens bei CodePress.Run Zeile hinzufügen: CodePress.Run() –

Verwandte Themen