2011-01-04 14 views
0

Es gibt ein Verfahren in colorbox JS-Datei:Überladen jQuery Colorbox-Methode?

publicMethod.position = function (speed, loadedCallback) { 
     var 
     animate_speed, 
     // keeps the top and left positions within the browser's viewport. 
     posTop = Math.max(document.documentElement.clientHeight - settings.h - loadedHeight - interfaceHeight, 0)/2 + $window.scrollTop(), 
     posLeft = Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0)/2 + $window.scrollLeft(); 

     ...more code... 
}; 

Ich möchte innerhalb der Methode die Postop und posLeft Variablen ändern. Wie kann ich diese Variablen ändern, ohne die Kerndatei zu bearbeiten?

Edit:

ich die Funktion meiner eigenen Skripts versucht Zugabe wie:

$.fn.colorbox.position = function (speed, loadedCallback) { 
    ... 
}; 

und auch:

var originalMethod = $.fn.colorbox.position; 

$.fn.colorbox.position = function (speed, loadedCallback) { 
    ... 
    return originalMethod.apply(this, arguments); 
}; 

Keiner meiner Änderungen obwohl arbeiten. Wenn ich auch alert($.fn.colorbox.position); es zeigt auch meine Änderungen. Irgendeine Idee, was ich vermisse?

+0

Seltsam, wenn ich versuche, das gleiche mit einem anderen Plugin tut es funktioniert, aber für colorbox tut es nicht. Könnte es an der "publicMethod" liegen? – Joker

Antwort

0

Von meinem grundlegenden Verständnis, gibt es nicht wirklich überladen, da JavaScript den Begriff der Vererbung nicht hat. Sie können eine Funktion überschreiben, solange die zweite Definition nach der ersten in der Reihenfolge erscheint, in der die Seite geladen ist. Das heißt, im HTML nach unten gehen.

Ich denke, Sie kopieren einfügen eine Funktion überschreiben ...

+0

Ich habe das schon versucht (es wird nach dem Original angezeigt), es hat nicht funktioniert. Gibt es etwas Zusätzliches, das du tun musst? – Joker