2012-12-12 97 views
1

我试图使用jQuery datepicker在日历中突出显示某些日期。我在Mark Murphy的这个论​​坛上发现了下面的代码,Highlight dates in specific range with jQuery's datepicker完美的工作,但是代码中有几个我不明白的地方。由于我没有足够的权限,因此我无法对原始答案发表评论。关于函数语法的两个问题,jQuery datapicker,beforeShowDay选项

我想知道的是:

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, '', '']; 
    } 

}); 

回答

0

1)dates[search] || ''意味着,如果没有定义dates[search],它将返回一个空字符串

2)return [false, '', '']返回3种元素的与值的数组:假,空隙串,空隙串

阵列的定义从jQueryUI的网站返回:

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

函数将日期作为参数,并且必须返回一个 [0]等于true/false的数组,指示此日期是否为 可选,[1]等于CSS类名称或“默认 演示文稿,[2]此日期的可选弹出式工具提示。在日期选择器显示之前,每天都会调用 。

+0

好的,是的,我曾看过API链接(我应该提到),但它没有提及如果结果是未定义的返回的选项 - 我认为这必须是一个标准的JavaScript的东西?我在这个论坛上进行了搜索,但一般都没有找到任何其他的例子。 – cpr

+0

也是空字符串与空字符串相同吗? (这是我将如何描述'')。而对于第2部分),我看不到3个元素,只有2个。请你解释一下“,”等同于无效字符串,无效字符串吗?很抱歉,如果所有这些都非常明显 - 我对JavaScript很陌生。 – cpr

+0

试图编辑以前的评论但不允许 - 请忽略关于存在3个元素的问题 - 我现在看到 - 仍然习惯于语法!关于空字符串是否与空字符串相同的问题仍然存在... – cpr