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>