2012-12-12 98 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