2012-03-17 72 views
0

我想問一些可能是錯的,但我不確定。JavaScript函數被觸發?

有沒有辦法在執行特定的功能,以便運行的代碼樣本知道嗎?我喜歡讓它像一個事件。

我的問題是粗框。我喜歡根據顯示的圖像調整thickbox的大小。

要做到這一點,我需要的是執行粗框的時候就知道了。

有什麼想法嗎?

+0

只是一個說明:[thickbox不再維護](http://jquery.com/demo/thickbox/)。 – Zeta 2012-03-17 09:36:44

回答

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

哇!謝謝你們!!這對我很有用! – 2012-03-17 10:11:46

2

你可以重載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. :)

+0

不幸的是貌似不工作:(我有嘗試。「的console.log(‘你好’);」返回original.apply(這一點,artguments)之前,沒有迴應:( – 2012-03-17 09:30:59

+1

@MerianosNikos記得我做了一個假設如何。你叫thickbox? – alex 2012-03-17 09:34:43

+0

沒關係,我知道:) xaxaxa。正如你所看到的,我已經組成了評級;)。我已經加載了WordPress默認的Thickbox實現,現在允許我調整它的大小。 :( – 2012-03-17 09:36:07

2

我不是JS開發者,但你可以創建一個回調函數,並執行特定功能時,它執行。

您可以在這裏找到一個很好的解釋:JavaScript Callback Scope

+0

這可以在不影響thickbox插件的源代碼的情況下完成嗎? – 2012-03-17 09:32:53