2011-02-02 80 views
0

我想添加第二個事件處理程序到已經創建的日期選擇器。JQuery - 添加另一個事件處理程序,調用前一個

基本上我有一些功能,使datepicker與一堆默認值,包括一個onSubmit處理程序。

我想保留現有的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對象。這打破了以前提交處理程序中的邏輯。

如果我嘗試添加第二個處理程序,第一個處理程序似乎被覆蓋(我認爲這不是預期的行爲?),所以我嘗試了這種方法。

我要對所有這一切錯了嗎?我是一種JavaScript n00b。

回答

0

不知道你做了什麼,但聽起來像一個範圍問題,所以儘量使用function.call或function.apply

例如

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