首页 > 编程问答 >如何在clouser中设置参数

如何在clouser中设置参数

时间:2024-07-23 15:06:57浏览次数:11  
标签:javascript jquery fullcalendar

我有一个获取参数的函数 callId 我在此处检查并在第一个日志中得到结果“用 ID 初始化日历:1” 但是对于第二个日志,我无法获取ID“选择日历ID:”

如何在clouser选择中发送ID?

    function updateCalendar(events, callId) {
        console.log('Initializing calendar with ID:', callId);
        const csrftoken = document.getElementById('csrf-token').value;
        var calendarEl = document.getElementById('calendar');
        var eventsData = JSON.parse(document.getElementById('events-data').textContent);
    
        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            events: eventsData,
            selectable: true,
            selectHelper: true,
            editable: true,
            eventLimit: true,
            select: function(start, end, allDay) {
                console.log('Select calendar ID:', callId);
            }
        })
    }

我想得到这样的结果 Initializing calendar with ID: 1 Select calendar ID: 1


问题在于 select 回调函数内的 callId 变量引用的是外部函数 updateCalendar 的参数 callId 。当 select 回调函数在未来某个时间点被调用时, updateCalendar 函数早已执行完毕, callId 的值也就不再可访问。

解决方法是利用 JavaScript 的闭包特性。将 select 回调函数定义为一个独立的函数,并将 callId 作为参数传递给它。这样, select 回调函数就可以访问到正确的 callId 值。

以下是修改后的代码:

function updateCalendar(events, callId) {
  console.log('Initializing calendar with ID:', callId);
  const csrftoken = document.getElementById('csrf-token').value;
  var calendarEl = document.getElementById('calendar');
  var eventsData = JSON.parse(document.getElementById('events-data').textContent);

  // 定义一个独立的函数来处理选择事件
  function handleSelect(start, end, allDay) {
    console.log('Select calendar ID:', callId);
  }

  $('#calendar').fullCalendar({
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'month,agendaWeek,agendaDay'
    },
    events: eventsData,
    selectable: true,
    selectHelper: true,
    editable: true,
    eventLimit: true,
    // 将 handleSelect 函数作为 select 回调函数
    select: handleSelect
  });
}

在这个修改后的代码中,我们定义了一个名为 handleSelect 的函数来处理选择事件。 handleSelect 函数接收 start end allDay 参数,这些参数由 fullCalendar 插件提供。

updateCalendar 函数中,我们将 handleSelect 函数作为 select 回调函数传递给 fullCalendar 插件。由于 handleSelect 函数是在 updateCalendar 函数内部定义的,因此它可以访问到 callId 变量。

这样,当用户选择日历上的日期时, handleSelect 函数就会被调用,并且它可以访问到正确的 callId 值,从而在控制台中打印出 "Select calendar ID: 1"。

标签:javascript,jquery,fullcalendar
From: 78781825

相关文章

  • 【前端】JavaScript入门及实战91-95
    文章目录91DOM92事件93文档的加载94DOM查询(1)95图片切换的练习91DOM<!DOCTYPEhtml><html><head><title></title><metacharset="utf-8"><style></style></head><body> <buttonid="btn&quo......
  • 【前端】JavaScript入门及实战86-90
    文章目录86正则表达式87字符串和正则相关的方法88正则表达式语法(1)89正则表达式语法(2)90邮件的正则86正则表达式<!DOCTYPEhtml><html><head><title></title><metacharset="utf-8"><scripttype="text/javascript"> /* 使用字面量来创建正......
  • 【前端】JavaScript入门及实战96-100
    文章目录96DOM查询(2)97DOM查询(3)98全选练习(1)99全选练习(2)100全选练习(3)96DOM查询(2)<!DOCTYPEhtml><html><head><title></title><metacharset="utf-8"> <scripttype="text/javascript"> window.onload=......
  • JavaScript——DOM属性之innerHTML和insertBefore
    今天我们来看看DOM当中的innerHTML和insertBefore。今天是用的样例仍然与上次一样,样例代码如下:<body><p>喜欢的城市</p><ulid="city"><liid="bj"name="beijing">北京</li><li>上海</li><......
  • 在 JavaScript 异步接收到的浏览器中显示 pdf
    我有一个Django应用程序,我从JS打电话索要pdf。Django视图返回HttpResponse的application/pdf如何让JS将接收到的application/pdf数据显示为pdf?Django视图defpdf_generation(request):context={}t=get_template('html_pd......
  • JavaScript笔记总结(Xmind格式):第一天
    Xmind鸟瞰图:简单文字总结:js使用方法:        1.行内样式(需要特定条件才可以使用)        2.内部样式(script尽量写在body最下面)        3.外部样式(在script标签中通过src引入外部的js文件)window对象的方法(window可以省略):        1.alert......
  • JavaScript笔记总结(Xmind格式):第二天
    Xmind鸟瞰图:简单文字总结:数据类型检测:可以使用typeof检测数据类型数据类型转换:  1.其它类型转换为Boolearn    ①数字类型转换Boolean:只有0会被转换为false,其它的非0数字都会转换为true    ②字符串类型转换为Boolean:只有空字符串会被转换为false,......
  • JavaScript笔记总结(Xmind格式):第三天
    Xmind鸟瞰图:简单文字总结:数组的创建:  1.数组的特性:    ①数组中,可以添加任意的数据类型    ②数组是一个对象,属于复杂数据类型    ③直接创建的数组可以在中间添加空值    ④构造函数创建的数据不可以添加空值,会直接报错  2.......
  • Python - Adob​​e InDesign Javascript 脚本帮助从 Python 调用 JSX
    提前致谢。希望每个人都表现出色。我试图从python调用Adob​​eIndesignJSX文件,下面是示例代码:我想在Adob​​eINdesign2024或更高版本上运行它。我在PythonInDesign脚本编写上看到了一些示例:从预检中获取溢出文本框以自动调整大小作为参考,可能适用于Ado......
  • 【校招+社招】华为OD机试 - 拼接URL(Java、JavaScript、Python、C、C++)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)算法概述URL拼接(URL拼接)是指将多个URL组件(方案、主机、端口、路径、查询参......