1

我试图为 jqueryui 的 datepicker 'onSelect' 事件附加或添加一个函数到现有的调用堆栈,但我失败了。

我已经粘贴了一个我在这里尝试做的例子。

基本上,它应该在第一次选择日期选择器alert('abc')之后alert('def')

http://jsfiddle.net/cfE7w/

任何建议表示赞赏。

4

1 回答 1

2

在你打电话给这个之后

$('#hello').datepicker("option", "onSelect", function(){
    var prevFunction ...

当前的事件处理程序已经是新的了!因此,当事件触发并执行以下代码时

var prevFunction = $(this).datepicker("option","onSelect");

prevFunction指向自己。您可以使用 IIFE 解决此问题:

$('#hello').datepicker("option", "onSelect", 
  (function() {
    var prevFunction = $('#hello').datepicker("option","onSelect");
    return function(){
      prevFunction();
      alert('def');
   };
 }()));

现在立即var prevFunction = ..调用并存储旧的处理程序。新处理程序分配有return function(){ ...

于 2013-07-01T13:39:29.673 回答