Heim > Web-Frontend > js-Tutorial > Jquery-Kalender-Plug-in zum Erstellen einer einfachen Calendar_jquery

Jquery-Kalender-Plug-in zum Erstellen einer einfachen Calendar_jquery

WBOY
Freigeben: 2016-05-16 15:34:43
Original
1404 Leute haben es durchsucht

Bei der Seitenentwicklung stoßen wir häufig auf Vorgänge, bei denen Benutzer Daten eingeben müssen. Der übliche Ansatz besteht darin, dem Benutzer ein Textfeld (Text) zur Eingabe bereitzustellen und dann Code zu schreiben, um die eingegebenen Daten zu überprüfen und festzustellen, ob es sich um einen Datumstyp handelt. Dies ist problematischer und gleichzeitig ist es für den Benutzer nicht sehr bequem, das Datum einzugeben, was sich auf die Benutzererfahrung auswirkt. Wenn Sie das Datepicker-Plugin (Kalender) in der jQuery-Benutzeroberfläche verwenden, können diese Probleme leicht gelöst werden. Das von diesem Plug-in aufgerufene

$(.selector”).datepicker(options);


Unter diesen stellt „.selector“ ein DOM-Element dar und bezieht sich im Allgemeinen auf ein Textfeld. Da die Funktion dieses Plug-Ins darin besteht, eine Datumsauswahl bereitzustellen, ist es häufig an ein Textfeld gebunden, und das ausgewählte Datum ist es Wird im Textfeld angezeigt. Optionen auswählen Es handelt sich um ein Objekt, das mit den Optionen im vorherigen Plug-In identisch ist. Durch Ändern der Werte, die seinen Parametern entsprechen, kann die Plug-In-Funktion geändert werden -in, die allgemeinen Parameter zum Auswählen von Optionen lauten wie folgt


1. changeMonth Legen Sie einen booleschen Wert fest. Wenn dieser Wert wahr ist, wird im Titel ein Dropdown-Auswahlfeld angezeigt, und Sie können den Monat auswählen 2. changeYear Legen Sie einen booleschen Wert fest. Wenn dieser wahr ist, wird im Titel ein Dropdown-Auswahlfeld angezeigt, und Sie können das Jahr auswählen. Der Standardwert ist false

3. showButtonPanel Legen Sie einen booleschen Wert fest. Unter dem Datum wird ein Panel mit zwei Schaltflächen angezeigt. Eine davon ist „Heute“ und die andere ist „Schließen“. angezeigt werden 4. closeText Legen Sie die Textinformationen für die Schaltfläche „Schließen“ fest. Die Voraussetzung für diese Einstellung ist, dass der Wert von showButtonPanel wahr sein muss, sonst wird der Effekt nicht angezeigt
5. dateFormat Legen Sie das im Textfeld (text) angezeigte Datumsformat fest, das auf {dateFormat,'yy-mm-dd'} eingestellt werden kann, was bedeutet, dass das Datumsformat Jahr-Monat-Tag ist, z. B. 2012-10 -1
6. defaultDate Legen Sie einen Standarddatumswert fest, z. B. {defaultDate 7}. Dies bedeutet, dass das Standarddatum nach dem Popup des Datumsauswahlfensters das aktuelle Datum plus 7 Tage
ist 7. showAnim Legen Sie fest, wie das Popup angezeigt oder das Datumsauswahlfenster ausgeblendet werden soll. Zu den einstellbaren Methoden gehören „show“, „sildeDown“, „fadeln“ und letzteres „“, was bedeutet, dass es keine Möglichkeit gibt, das Datumsauswahlfenster
aufzurufen 8. showWeek Legen Sie einen booleschen Wert fest. Wenn dieser wahr ist, können Sie die Woche anzeigen, die jedem Tag entspricht. Der Standardwert ist falsch
9. yearRange Legen Sie den Jahresbereich fest

Vor kurzem habe ich die Entwicklung von JS-Plug-Ins studiert. In der Vergangenheit habe ich gesehen, dass die Meister Plug-Ins einfach in die Hand genommen und damit gespielt haben. Ich hatte das Gefühl, dass es großartig wäre, wenn ich dieses Niveau erreichen würde. Also begann ich, mich selbst mit der Plug-in-Entwicklung zu beschäftigen. Nachdem ich eine Weile studiert hatte, begann ich, mein erstes Kalender-Plug-In zu schreiben. Da ich ein Anfänger in der Plug-In-Entwicklung bin, ist die Lesbarkeit des Codes möglicherweise etwas schlecht Code in Zukunft hinzufügen, um dieses Plug-in vollständiger zu machen.

Der Code ist unten aufgeführt.

Geben Sie dem Plug-in zunächst einen Gesamt-Div-Container

Ich bin es gewohnt, mein eigenes eindeutiges Präfix hinzuzufügen, wenn ich dem Container den Klassen- oder ID-Namen gebe. Dies hilft, meinen eigenen Code zu identifizieren und Stilkonflikte mit anderen Kollegen zu vermeiden.
<div class="y-total"></div>
Nach dem Login kopieren

Dann beginnen Sie mit dem Schreiben des Stils. Sie können den Stil an Ihre eigenen Bedürfnisse anpassen

 .y-total{height:auto;border:px solid #;}
  .y-total .return-btn{height:px;}
  .y-total .return-btn>div{border-right: px solid #;border-bottom: px solid #;color: #;font-family: "Microsoft Yahei",PMingLiU,Verdana,Arial,Helvetica,sans-serif}
  .y-total .return-btn>div:nth-child(){border-right:px;}
  .y-total .prev-btn{cursor: pointer;width:%;float: left;text-align: center;}
  .y-total .time{cursor: pointer;float:left;width:%;text-align: center;}
  .y-total .next-btn{cursor: pointer;float:right;width:%;text-align: center;}
  .y-total .y-stop{position: absolute;margin-left: px;background-color: red;color: #fff;}
  .y-total #datatab{clear:both;width:%;}
  .y-total #datatab td {height:px;font-family: "Microsoft Yahei",PMingLiU,Verdana,Arial,Helvetica,sans-serif;color: #;border: px solid #DDD;font-size: px;text-align: center;}
Nach dem Login kopieren
Der dritte Schritt ist der Plug-in-Code

Dann ist das Plug-in fast fertig. Jetzt müssen Sie nur noch die Plug-in-Methode aufrufen
 <script>
  (function($){
   var Beautifier = function(vals,options){
    this.vals = vals;
    this.defaults = {
    "width":"px"
    }
    this.p = $.extend({},this.defaults,options); 
    this.$div = $("<div class='return-btn'></div>");
   this.prev = $("<div class='prev-btn'>前一页</div>");
   this.time = $("<div class='time'></div>");
   this.next = $("<div class='next-btn'>后一页</div>");
   this.tab = $("<table id='datatab'><tr></tr></table>");
   }
 
   Beautifier.prototype = {
   getDate : function(){
    var vals = this.vals;
    var t = this.time.attr("class");
    var tab = this.tab.attr("id");
    this.$div.append(this.prev,this.time,this.next);
    $(this.p.$this).append(this.$div,this.tab).width(this.p.width);
    var i = getInfo(vals);
    $("."+t).text(vals.year+"-" + i[]+"-" + i[]);
    $(".prev-btn,.next-btn").click(function(){returnAction($(this),t,vals,tab)}); 
    setDateInfo(tab);
    init(vals,tab);
   }
   }
   /*加载时将日期放入td中*/
   function init(vals,tab){
    var w = new Date(vals.year+","+vals.month+","+).getDay()//获取本月第一天是星期几
    var l =(w==&#63;:w-) + new Date(vals.year,vals.month,).getDate();//需要铺上td的个数
    var t = Math.ceil(l/);
    for(var i=; i<t; i++){
    $("#"+tab).append("<tr class='y-tr'></tr>");
    }
    $(".y-tr").each(function(){
    for(var i=; i<; i++){
     $(this).append("<td></td>");
    }
    })
    setvalue(vals,new Date(vals.year,vals.month,).getDate(),w);
   }
   function setvalue(val,l,w){
    for(var i=;i<l+;i++){
    var space = w==&#63;i+-+:i+w-+;
    $("td").eq(space).text(i);
    if(i == val.day){
     $("td").eq(space).css("color","red"); 
    }
    }
   }
   function getInfo(vals){
    var info = [];
    info.push(vals.month > &#63; vals.month : "" + vals.month);
    info.push(vals.day > &#63; vals.day : "" + vals.day);
    return info;
   }
 
   function setDateInfo(tab){
   var m = ["","一","二","三","四","五","六","日"];
   for(var i=; i<; i++){
    $("#"+tab).find("tr:eq()").append("<td>星期"+m[i]+"</td>");
   }
   }
   /*上一页,下一页的点击事件*/
   function returnAction($this,t,val,tab){
    if($this.attr("class") == "prev-btn"){
     if(val.month < ){
     val.month =;
     val.year-=;
     }else{
     val.month-=;
     }
    }else if($this.attr("class") == "next-btn"){
     if(val.month > ){
     val.month =;
     val.year+=;
     }else{
     val.month+=;
     }
    } 
    var v = getInfo(val);
    $("."+t).text(val.year+"-"+v[]+"-"+v[]);
    $(".y-tr").remove();
    init(val,tab);
   } 
 
   $.fn.work = function(options){
   var t = new Date();
   var DateVal = {
    "year" : t.getFullYear(),
    "month" : t.getMonth()+,
    "day" : t.getDate()
   }
   var objs = new Beautifier(DateVal,options); 
   objs.getDate();
   }
  })(jQuery)
 </script>
Nach dem Login kopieren

Der Effekt ist wie folgt:
 <script>
  $(".y-total").work({
  "$this" : ".y-total",
  "width" : "px",//控制容器的宽度
  });
 </script>
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage