2011-02-02 9 views
0

すでに作成されているdatepickerに2番目のイベントハンドラを追加しようとしています。JQuery - 前のイベントハンドラを呼び出す別のイベントハンドラを追加

基本的に、私はonSubmitハンドラを含む多くのデフォルトでdatepickerを作るいくつかの関数を持っています。

私は、既存のonSubmitハンドラの動作を保持したいと思いますが、今後の処理のためにイベントを自分自身で捕捉したいと思います。これは、デバッガで大きな動作しているようです

make_datepicker("some_id"); //someone else's code that I can't change 
var prev_submithandler = $("#some_id").datepicker('option', 'onSelect'); 
$("#some_id").datepicker('option', 'onSelect', function(dateText) { 
    prev_submithandler(dateText); 
    // do some other stuff 
}); 

が、私は以前提出ハンドラ、「これは」ではないと変更されたの値に足を踏み入れるとき:

は、ここで私はそれをやってみましょうdatepickerの入力フィールドがDOMWindowオブジェクト全体になりました。これにより、前の送信ハンドラのロジックが中断されます。

2番目のハンドラを追加しようとすると、最初のハンドラがオーバーライドされているように見えます(これは予想された動作ではないと思います)。

私はこれについてすべて間違っていますか?私はJavaScriptのn00bのようなものです。

答えて

0

ない、あなたは何をすべきかわからなく、スコープの問題のように聞こえるので、function.callまたはfunction.apply

例えば使用するようにしてください

$("#some_id").datepicker('option', 'onSelect', function(dateText) { 
    prev_submithandler.call(this, dateText); 
    // do some other stuff 
}); 
関連する問題