Javascript 将事件添加到特定的jQuery UI日期选择器

Javascript 将事件添加到特定的jQuery UI日期选择器,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,我需要有一个onSelect选项。其他日期选取者则不这样做 Header.php $(函数(){ $('input.date')。每个(函数(){ $(this.datepicker(); }); }); 我需要将事件添加到单独的脚本块中,因为它包含在不同的文件中。 我尝试了以下方法,但不起作用。 输入成为jQuery Ui日期选择器,但没有附加事件 许多php页面中的一个 $(函数(){ $('#from').datepicker({onSelect:function(){ 警报(1);

我需要
有一个
onSelect
选项。其他日期选取者则不这样做

Header.php


$(函数(){
$('input.date')。每个(函数(){
$(this.datepicker();
});
});
我需要将事件添加到单独的脚本块中,因为它包含在不同的文件中。 我尝试了以下方法,但不起作用。 输入成为jQuery Ui日期选择器,但没有附加事件

许多php页面中的一个


$(函数(){
$('#from').datepicker({onSelect:function(){
警报(1);
}
});
有可能实现吗?

您可以尝试:

   $(function() {
        $('input.date').not("#from").each(function() {
            $(this).datepicker();
        });
    });



   $(function() {
        $('#from').datepicker({onSelect: function() {
        alert(1);
          } 
        });
    });

好吧,你可以只听另一个事件,而不需要自定义onSelect。 例如,听输入字段上的
change
事件,因此每当内部数据发生更改时,您都会触发手动回调

编辑: 好的,如果事件无法附加,请尝试修改
jquery.ui.datepicker.js
文件。 打开它,搜索
函数Datepicker()
构造函数,然后搜索
this.\u默认值
对象

您应该更改
onSelect:null,//在选择日期时定义回调函数

onSelect: function(){
    if( /*this is $("#from")*/ )
        alert('1');
},

好了,伙计们,谢谢你们的回答,我投了赞成票,但最后我还是这样做了。 这并不完全是我想要的,但在我改进我的OO风格javascript之前,它会起作用

Header.php


$(函数(){
$('input.date')。每个(函数(){
$(此).datepicker({
onSelect:function(){
dateChanged的类型==='函数'&&dateChanged(此);
}
});
});
});
许多php页面中的一个


var dateChanged=函数(日期选择器){
console.log(日期选择器)
};
编辑:

似乎首选的方法是:

Header.php


$(函数(){
$('input.date')。每个(函数(){
$(this.datepicker();
});
});
许多php页面中的一个


$(函数(){
$('#from')。日期选择器('option','onSelect',函数(){
警报(1);
});
});

您是否在一个页面上运行这两个函数?最终,是的,但代码块位于单独的php文件中(包含在main中的头文件),我建议使用.not(“#from”)正如mccannf在回答中所说的选择器。只需将不同的文件分开。您好,感谢您的快速响应,但问题是代码块在不同的文件中,我编辑了我的帖子来实现这一点clearer@andrew-尽管在第一个代码块中,
not
命令仍应有效。这将忽略id为
fr的输入om
…您好,谢谢,但是当jQuery填充输入
onchange
事件时,它似乎不会触发
   $(function() {
        $('input.date').not("#from").each(function() {
            $(this).datepicker();
        });
    });



   $(function() {
        $('#from').datepicker({onSelect: function() {
        alert(1);
          } 
        });
    });
onSelect: function(){
    if( /*this is $("#from")*/ )
        alert('1');
},
<script>
  $(function() {
         $('input.date').each(function() {
           $(this).datepicker({
                    onSelect: function() {
                       typeof dateChanged === 'function' && dateChanged(this);
                    }
              });
         });
     });
 </script>  
<?php include('header.php'); ?>
<script>  
    var dateChanged = function(datePicker){
       console.log(datePicker)
     };
</script>  
<script>
  $(function() {
         $('input.date').each(function() {
           $(this).datepicker();
         });
     });
 </script>  
<?php include('header.php'); ?>
<script>  
    $(function(){
        $('#from').datepicker('option','onSelect',function(){
            alert(1);
        });
    });
</script>