2011-11-10 109 views
0

我已經寫了下面的代碼,它可以工作,但我想知道我可以做得更小。有沒有辦法壓縮這個JavaScript代碼更多?

$(document).ready(function() 

      $('.datepickerTarget').datepicker({ 
       onSelect: function (dateText, inst) { 

        $('#' + this.id).removeClass('watermark'); 

       } 
      }); 

      $('.datepickerTarget').datepicker("option", "dateFormat", "dd/mm/yy"); 

     }); 

我猜我嘗試瞭解線路:

$('.datepickerTarget').datepicker("option", "dateFormat", "dd/mm/yy"); 

在做什麼。這是一個建築師嗎?我在哪裏可以找到我可以放在這條線上?這只是一種方法嗎?不確定語法。

希望有人能幫助我明白,所以我可以縮短這個代碼,使它有點更光滑...

+0

http://jqueryui.com/demos/datepicker/ –

+0

你有8行代碼,其中5個真正做一些事情,而這些線代表的後臺代碼難以置信的大塊 - 唐」不用擔心它會縮小,它已經縮小了很多。 –

+0

看起來你在第一個問號後失去了人。 –

回答

2
$(document).ready(function() 
    $('.datepickerTarget').datepicker({ 
     dateFormat:"dd/mm/yy", 
     onSelect: function (dateText, inst) { 
      $('#' + this.id).removeClass('watermark'); 
     } 
    }); 
}); 

您可以設置日期格式,當對象被傳遞作爲參數來構建日期時間對象的「構造函數」。

如果您擔心大小,請查看JavaScript壓縮。我使用YUI compression algorithm

$('.datepickerTarget').datepicker({ 
      onSelect: function (dateText, inst) { 
       $('#' + this.id).removeClass('watermark'); 
      }, 
      dateFormat: "dd/mm/yy" 
}); 
1
$(document).ready(function() 
     $('.datepickerTarget').datepicker({ 
      onSelect: function (dateText, inst) { 

       $('#' + this.id).removeClass('watermark'); 

      }, 
      dateFormat: "dd/mm/yy" 
     }); 
    }); 

您可以添加該選項右側的日期選擇器

1

的初始化選項是的,你可以在單一的通話這裏設置dateFormat屬性與onSelect一起更多華麗是讓它無法維護的一個步驟。

如果你很難弄清楚如何使它變小,那麼想象一下當你在6個月內看它時你會記得它到底在做什麼。

4

製作代碼:

+0

優秀的評論!我們完全可以用C語言編寫所有的代碼 - 無需等待,機器代碼,不用等待,微代碼等......任何高級語言的原因都是程序員理解和維護程序,因此可讀性(以及實際功能! )非常重要。 –

+0

我認爲你是對的,但我應該評論它。我不打算將它作爲公認的答案(我確實看到將dateFormat初始化與datepicker的其餘部分結合在一起的好處)。我只是想提出這種問題應該非常保守地問自己。 –

0

它看起來並不是很壓縮 - 通常情況下,壓縮Javascript歸結爲混淆它,從某種意義上說:刪除所有不必要的字符,包括換行符,甚至將方法重命名爲更少(或根本不)描述。從另一個意義上說,壓縮可能意味着壓縮,例如刪除非必需的代碼,以便最大限度地減少數量,同時消除冗餘工作的代碼 - 這將消除冗餘。有了這個方法,並轉移到第二個問題上,是的,這是一個構造函數或「初始化方法」。用於實例化插件並提供所需參數作爲參數。你應該能夠找出哪些參數可通過兩種方式支持:

  • 閱讀文檔插件
  • 查看源文件並讀取代碼
0
$('.datepickerTarget').datepicker({ 
    onSelect: function (dateText, inst) { 
        $('#' + this.id).removeClass('watermark'); 
       }, 
    dateFormat : "dd/mm/yy" 
}); 

它不是真的實際上少了幾行,但將dateFormat移動到日期選擇器啓動中會更加整潔。

你真的應該看看文檔!

1

這應該有所幫助。

$(document).ready(function() { 

    $('.datepickerTarget').datepicker({ onSelect: function() { $(this).removeClass('watermark'); }, dateFormat: "dd/mm/yy" }); 

}); 
相關問題