Mam wiele funkcji i procedur obsługi zdarzeń, które są podzielone na wiele plików javascript, które są zawarte na różnych stronach w mojej witrynie.Techniki grupowania kodu javascript
Ze względu na wydajność chcę połączyć wszystkie te pliki w jeden plik, który jest globalny w całym serwisie.
Problem polega na tym, że moduły obsługi zdarzeń będą wywoływać elementy, które niekoniecznie będą istniały i te same nazwy funkcji.
Jest to przykład typowego pliku javascript ...
$(document).ready(function(){
$('#blah').keypress(function(e){
if (e.which == 13) {
checkMap();
return false;
}
});
});
function checkMap() {
// code
}
function loadMap() {
// code
}
musiałbym oddzielić ten kod do obiektu, który nazywa się na tej konkretnej stronie.
Myślami mogę ponownie napisać to tak:
(function($) {
$.homepage = {
checkMap: function(){
// code
},
loadMap: function(){
//code
}
};
})(jQuery);
A potem na stronie, że wymaga mogłem zadzwonić $.homepage.checkMap()
itp
Ale wtedy jak bym zadeklarować obsługi zdarzeń jak document.ready
bez zawierania go w swojej własnej funkcji?
Każda rada dotycząca najlepszej praktyki byłaby świetna, dziękuję!
co masz na myśli (jak użyłbym obsługi zdarzeń document.ready?) – mgraph
Jesteś we właściwym kierunku. Możesz umieścić moduły obsługi w dolnej części dokumentu, aby uniknąć dokumentu.ready – dotoree
Przepraszam, chciałem nazwać "document.ready" w skrypcie, a nie na samej stronie, ale musiałbym umieścić go w oddzielnym funkcja w '$ .homepage' w prawo? Czy istnieje sposób na utworzenie funkcji konstruktora przy użyciu tej metody bez konieczności wywoływania tego? – fire