2012-03-17 39 views
0

私は何かが間違っているかもしれないことを尋ねたいと思いますが、わかりません。JavaScript関数が呼び出されましたか?

コードのサンプルを実行するために、特定の関数がいつ実行されるかを知る方法はありますか?私はそれをイベントのようにしたい。

私が持っている問題は、太い箱です。表示されている画像に従って、太いボックスのサイズを変更するのが好きです。

これを行うには、太いボックスがいつ実行されるかを知る必要があります。

どうぞよろしくお願いします。

+0

ちょうど注:[thickboxはもはや維持されていません](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

うわー!!!おかげです。 –

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( 'Hello');"を返す前に元のアプリケーション(this、artguments);を返信していませんでした:( –

+1

@MerianosNikos – alex

+0

これは私が知っていることを知っている:) xaxaxa。あなたが見ているように、私はすでに評価を作っている;)。私はWordPressのデフォルトのThickbox実装を読み込みました。これでサイズ変更が可能になりました。 : –

2

私は、JSの開発者はないですが、あなたはコールバック関数を作成し、その特定の機能を実行したときに、それを実行することができます。

あなたはここで良い説明を見つけることができます:JavaScript Callback Scope

+0

これはthickboxプラグインのソースコードに影響を与えずに行うことができますか? –