Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript yacal.js next/back按钮删除jquery事件侦听器_Javascript_Jquery_Calendar_Jquery Events - Fatal编程技术网

Javascript yacal.js next/back按钮删除jquery事件侦听器

Javascript yacal.js next/back按钮删除jquery事件侦听器,javascript,jquery,calendar,jquery-events,Javascript,Jquery,Calendar,Jquery Events,我正在使用它来创建日历 下面是yacal.js的和(它来自我的网站,因为我找不到它的cdn) 对于我的项目,我正试图这样做:当用户单击某个日期时,会向我的php页面发送一个带有日期的ajax请求,而我的php页面会从数据库中获取一行带有匹配日期的数据 一切都很好。。。但是,当我单击next/back按钮(日历顶部更改月份的两个按钮)时,它会删除我的jQuery事件: $(“一天”)。单击(函数(){ 为什么会这样 或者我能做些什么来修复它 历法 $(文档).ready(函数(){ $(“a.

我正在使用它来创建日历

下面是yacal.js的和(它来自我的网站,因为我找不到它的cdn)

对于我的项目,我正试图这样做:当用户单击某个日期时,会向我的php页面发送一个带有日期的ajax请求,而我的php页面会从数据库中获取一行带有匹配日期的数据

一切都很好。。。但是,当我单击next/back按钮(日历顶部更改月份的两个按钮)时,它会删除我的jQuery事件:

$(“一天”)。单击(函数(){

为什么会这样

或者我能做些什么来修复它


历法
$(文档).ready(函数(){
$(“a.day”)。单击(函数(){
显示数据(
编号($(this.html()),
$(此).parents(“div.month”).attr('class')。replace('month m',''),
$(this).parents(“div.month”).children('h4').html().replace(/\D/g'))
);
});
});
功能显示数据(a、b、c){
a=(a<10)‘0’+a:a;
b=(b<10)‘0’+b:b;
警报(‘日:’+a+’,月:’+b+’,年:’+c);
}
$('#calendarTemplate').yacal();
使用

事件委派允许我们将单个事件侦听器附加到父元素,该事件侦听器将为与选择器匹配的所有子体触发,无论这些子体现在存在还是将来添加

您正在页面加载时绑定事件。但当元素被删除并替换为其他元素(天)时,事件将解除绑定

使用as绑定事件

演示

$(文档).ready(函数(){
$(“#calendarTemplate”)。在(“单击”,“a.day”,函数()上{
显示数据(
编号($(this.html()),
$(此).parents(“div.month”).attr('class')。replace('month m',''),
$(this).parents(“div.month”).children('h4').html().replace(/\D/g'))
);
});
});
功能显示数据(a、b、c){
a=(a<10)‘0’+a:a;
b=(b<10)‘0’+b:b;
警报(‘日:’+a+’,月:’+b+’,年:’+c);
}
$(“#calendarTemplate”).yacal();

JS DOM脚本中的经典问题。您覆盖HTML内容,而不重新绑定事件侦听器。如果覆盖相应的元素,则事件侦听器将丢失。甚至会发生这样的情况。
$("#calendarTemplate").on("click", "a.day", function() {