【问题标题】:2 questions about syntax of function, jQuery datapicker, beforeShowDay option关于函数语法的2个问题,jQuery datepicker,beforeShowDay选项
【发布时间】:2012-12-12 17:29:18
【问题描述】:

我试图使用 jQuery datepicker 突出显示日历中的某些日期。我在这个论坛上从 Mark Murphy Highlight dates in specific range with jQuery's datepicker 找到了以下代码,它运行良好,但是代码中有一些我不明白的地方。由于我没有足够的权限,我无法对原始答案发表评论。

我想知道的是:

1) || 的目的是什么'' 在返回匹配日期的位中(函数返回 true)?

2) , 当函数返回 false 时的目的是什么?

$(document).ready(function() {

var dates = {'2012/6/4':'some description' , '2012/6/6':'some other description'}; 

$('#datepicker').datepicker({                
   beforeShowDay: function(date) {

       var search = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getDate());

       //console.log(search);

       if (dates[search]) {
           return [true, 'highlight', dates[search] || ''];
       }

       return [false, '', ''];
   }

});

【问题讨论】:

    标签: javascript jquery jquery-ui-datepicker


    【解决方案1】:

    1)dates[search] || ''表示如果dates[search]没有定义,则返回一个空字符串

    2) return [false, '', ''] 返回一个包含 3 个元素的数组,其值为:false、void string、void string

    从 JQueryUI 网站返回的数组定义:

    http://api.jqueryui.com/datepicker/#option-beforeShowDay

    一个函数接受一个日期作为参数并且必须返回一个数组 [0] 等于真/假,表示此日期是否为 可选择的,[1] 等于 CSS 类名或 "" 为默认值 演示文稿,以及 [2] 此日期的可选弹出工具提示。它是 日期选择器中的每一天在显示之前调用。

    【讨论】:

    • 好的,是的,我查看了 API 链接(我应该提到过),但它没有提到如果结果未定义则返回某些内容的选项 - 我认为这必须是标准 JavaScript事物?我已经在这个论坛上进行了搜索,但总体上没有找到任何其他示例。
    • 空字符串也和空字符串一样吗? (这就是我描述''的方式)。对于第 2 部分)我根本看不到 3 个元素,只有 2 个。您能否解释一下“,”如何等同于 void string、void string?对不起,如果这一切真的很明显 - 我对 JavaScript 还是很陌生。
    • 试图编辑以前的评论但不允许 - 请忽略关于有 3 个元素的问题 - 我现在看到了 - 仍然习惯于语法!关于空字符串是否与空字符串相同的问题仍然存在......
    • 您不能返回undefined,如果日期可选则返回return [true, '', ''];,否则返回return [false, '', ''];。当然,如果需要,添加特殊类(参数 2)和工具提示信息(参数 3)
    • 我只是想了解返回中的语法,您已经解释了如果 dates[search] 返回 || 之后出现的任何内容 实际上没有定义。我之前没有看到一个 return 语句,它指定了如果某些东西未定义该怎么做。你有可以指点我的参考吗?我仍然不清楚为什么在这种情况下使用它 - 如果 dates[search] 没有定义,那么函数不会返回 false 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2011-11-24
    • 2021-02-20
    • 1970-01-01
    • 2013-01-07
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多