2012-03-17 2 views
0

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

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

Проблема у меня есть толстая коробка. Мне нравится изменять размер толстого ящика в соответствии с изображением, которое отображается.

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

Любая идея, пожалуйста?

+0

Просто примечание: [толстый бокс больше не поддерживается] (http://jquery.com/demo/thickbox/). – Zeta

ответ

2

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 
}); 
+0

Wow !!! Спасибо вам обоим! Это сработало для меня !!! –

2

Вы можете перегрузить вызов плагинов толстой коробки.

Я собираюсь предположить, что он вызывается в коллекции с 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. :)

+0

, к сожалению, выглядит неработоспособным :(Я попробовал «console.log (« Hello »);« перед возвратом original.apply (this, artguments); без ответа :( –

+1

@MerianosNikos Помните, что я сделал предположение. вы называете толстую коробку? – alex

+0

Это нормально, я знаю :) xaxaxa. Как вы видите, я уже составил рейтинг;). У меня загружена реализация Thickbox по умолчанию WordPress, которая теперь позволяет мне изменять ее размер. :( –

2

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

Вы можете найти хорошее объяснение здесь: JavaScript Callback Scope

+0

Это можно сделать, не влияя на исходный код плагина толкбокса? –

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