2011-01-04 2 views
0

Существует метод в ColorBox JS файл:Перегрузка jQuery Colorbox Method?

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

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

Edit:

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

$.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);, это также показывает мои изменения. Любая идея, что мне не хватает?

+0

Weird, если я пытаюсь делать то же самое с другим плагином он работает, но для ColorBox это не делает. Может ли это быть из-за «publicMethod»? – Joker

ответ

0

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

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

+0

Я уже пробовал это (он отображается после оригинала), это не сработало. Есть ли что-нибудь дополнительное, что вам нужно будет сделать? – Joker

Смежные вопросы