Сработала функция JavaScript? - PullRequest
0 голосов
/ 17 марта 2012

Я хотел бы спросить кое-что, что, возможно, неправильно, но я не уверен.

Есть ли способ узнать, когда выполняется конкретная функция, для запуска образца кода?Мне нравится делать это как событие.

У меня проблема с толстой коробкой.Я хотел бы изменить размер коробки в соответствии с изображением, которое отображается.

Для этого мне нужно знать, когда выполняется толстая коробка.

Есть идеи, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 17 марта 2012

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

Хорошее объяснение вы можете найти здесь: Область обратного вызова JavaScript

2 голосов
/ 17 марта 2012

Thickbox использует глобальную функцию, так что вы можете сделать это ниже: (Как предложил @alex.)

(function($) {
    var original = tb_show;
    tb_show = function () {
        $(document).trigger('tb_show');
        return original.apply(this, arguments);
    }
})(jQuery);

Тогда вы можете связать событие:

$(document).bind('tb_show', function() {
    //event handler
});
2 голосов
/ 17 марта 2012

Вы могли бы перегрузить вызов плагина Thickbox.

Я собираюсь предположить, что он вызывается для коллекции с thickbox(), например, $('.container img').thickbox().

(function($) {

    var original = $.fn.thickbox;

    $.fn.thickbox = function() {
        // Whatever you need to do here.
        return original.apply(this, arguments);
    }

})(jQuery);

Теперь,когда вы вызываете ...

$('.container img').thickbox()

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

Вы можете делать все, что захотите, где говорится// Whatever you need to do here.:)

...