8

jquery datePicker オブジェクトで同じ onSelect イベントを 2 回処理しようとしています。私が理解していることから、イベントは複数回処理できますが、これを試してみると、イベントハンドラーの1つだけが起動されます。2番目のハンドラーを起動するようですが、最初のハンドラーは起動しません。最初のイベントをオーバーライドせずに、同じ onSelect イベントを 2 回処理するにはどうすればよいですか? これは問題のコード スニペットです。

$(document).ready(function(){
    $('.test').datepicker();
    ...
    $('.test').datepicker('option', 'onSelect', function(dateText, inst) { alert('one'); });
}

...

$(document).ready(function(){
    $('.test').datepicker('option', 'onSelect', function(dateText, inst) { alert('two'); });
}
4

1 に答える 1

11

使用しているコードは、最初の onSelect ハンドラーを 2 番目のハンドラーに置き換えているだけです。2 つのことをしたい場合は、最初に既存の onSelect ハンドラーを取得し、それを置き換えるハンドラー内から呼び出す必要があります。

$(function() {
     $('.test').datepicker();
     $('.test').datepicker('option', 'onSelect', function(dateText,inst) { alert('one'); } );
     var prevHandler = $('.test').datepicker('option','onSelect');
     $('.test').datepicker('option', 'onSelect', function(dateText,inst) { prevHandler(dateText,inst); alert('two'); } );
});
于 2010-02-11T02:15:05.090 に答える