Перегрузка jQuery Colorbox Метод? - PullRequest
0 голосов
/ 04 января 2011

В JS-файле colorbox есть метод:

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...
};

Я хочу изменить переменные posTop и posLeft внутри метода.Как я могу изменить эти переменные, не редактируя основной файл?

Редактировать:

Я попытался добавить функцию в свои собственные сценарии, такие как:

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

, а также:

var originalMethod = $.fn.colorbox.position;

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

Ни одно из моих изменений не работает, хотя.Если я также alert($.fn.colorbox.position);, это также показывает мои изменения.Есть идеи, что мне не хватает?

1 Ответ

0 голосов
/ 04 января 2011

Исходя из моего базового понимания, в действительности нет перегрузки, поскольку в JavaScript нет понятия наследования. Вы можете перезаписать функцию, если второе определение появляется после первого в порядке загрузки страницы. То есть ниже в HTML.

Я думаю, вам придется скопировать, перезаписать функцию ...

...