JSプラグインを作ってみた、今回はANA旅割JSプラグイン(またかよ)。

2017.09.30

Logging

JSプラグインを作ってみた、今回はANA旅割JSプラグイン・・・。
またかよと言われそうなのですが、試しに作ってみたりした。
本当はもっと簡略化できるのだけど、あえてこれを参考に作る人にも
ある程度、参考になるかなというぐらいの代物です。
昨日、datetimepickerというプラグインを仕事で見ていて最初、取り出し方などが
わからず試行錯誤してなんとか取り出すことが出来たのですが、これでは駄目だな。
前、なんか書いていたけど使わなかったらやはり忘れてしまうので
本日から一週間ぐらい、しょぼいJSプラグインを何個かリリースします。
大量のコードは仕事終わってから書くことは出来ないかもしれないけれど
サンプルプログラム程度は簡単にコードが書けるように
しておかないと行けないなという気持ちもあります。
そしてjQueryから自前のjQueryプラグインへ
仕事でもシフトしていくつもりです。
やはりコチラのほうが慣れれば楽かなと感じます。
トイウコトでANA旅割JSプラグインは
こちらからダウンロードを行なってください。
ちなみに作りかけなので、これから再編集してもらっても
構いません。なんせ適当ですから:)
https://zip358.com/tool/ana_js_p/

(function($){
    var ana_tabai = {
        ana75:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];
            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setMonth(dt.getMonth());
            dt.setDate(dt.getDate()-74);
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },
        ana55:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];
            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setMonth(dt.getMonth());
            dt.setDate(dt.getDate()-54);
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },
        ana45:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];
            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setMonth(dt.getMonth());
            dt.setDate(dt.getDate()-44);
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },
        ana28:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];
            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setDate(dt.getDate()-27);
            dt.setMonth(dt.getMonth());
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },
        ana21:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];
            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setDate(dt.getDate()-20);
            dt.setMonth(dt.getMonth());
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        }
    };
 $.fn.tabiwari = {
     ana:function(d){
        if(d.split("-").length==3){
            var a = d.split("-");
            console.log(a);
            s = [ana_tabai.ana75(a),ana_tabai.ana55(a),ana_tabai.ana45(a),ana_tabai.ana28(a),ana_tabai.ana21(a)];
            var str="";
            var days = [75,55,45,28,21];
            for(var i = 0;i < s.length;i++){
                str += days[i] + "days ::" + s[i] + "<br>";
            }
            return str;
        }else{
            return "no!! :( ";
        }
    }
 }
})(jQuery);
function mumu (y,m,dy,dd){
    console.log(dd);
    dd[0] = !m?dd[0]:y;
    dd[1] = !m?dd[1]:m;
    dd[2] = !m?dy:dy;
    return dd;
}
<!doctype html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>zip358.com:ANAJSぷらぐいん</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=10.0, user-scalable=yes">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="ana_tabiwari.js"></script>
  <script>
      $(function(){
          $("#ana_input").change(function(){
            var str = $("#ana_input").tabiwari.ana($(this).val());
            $("#ana").html(str);
          });
      });
  </script>
  <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-71682075-1', 'auto');
  ga('send', 'pageview');
</script>
</head>
<body>
    <input id="ana_input" type="date">
    <div id="ana">
    </div>
    <a href="ana_tabiwari.js" download="ana_tabiwari.js">ANA旅割JSプラグインダウンロード</a>
</body>
</html>

 

タグ

AM, ANA旅割JSプラグイン, B06XNQCW7B, console.log, d.split, datetimepicker, dt.getDate, dt.setDate, fn.tabiwari, function, jquery, new Date, return dt, return str, s.length, var ana_tabai, var days, var dt, var str, トイウコト,

猫でもできるjsでゴリゴリ

2017.06.10

Logging


有言実行ということで、ゴリゴリJSのサンプル書いてみました。
と言ってもサンプルなので数行だけです。
唯、これを理解すると結構便利です。使い方は人それぞれだと思いますが
簡単に言えばJSのプラグインの考え方と似ていますね。
最初の部分だけ変更すればプラグインになっちゃうからね。
トイウコトでサンプルです。
本当はボタン押しても何も動かない仕様にするつもりでした。
コンソールログから出力した値から導き出して欲しかったけど
いまどきオープンなので・・・。
サンプルサイトとソースを掲載します。
https://zip358.com/tool/ajikan_js/

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>猫でもできるjsでゴリゴリ</title>
    <meta name="viewport" content="user-scalable=no,initial-scale = 1.0,maximum-scale = 1.0">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link rel="stylesheet" type="text/css" href="../topcoat/main/fonts/stylesheet.css">
    <link rel="stylesheet" type="text/css" href="../topcoat/css/topcoat-desktop-dark.css">
    <link rel="stylesheet" type="text/css" href="../topcoat/main/css/main.css">
    <link rel="stylesheet" type="text/css" href="../topcoat/main/css/brackets.css"><!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    <script>
        $(function(){
            var ajikan  = {
                ajisen:function(){
                    var str = "味せんべい";
                    console.log(str);
                    return str;
                },neko:function(){
                    var str = "猫が";
                    console.log(str);
                    return str;
                },loop:function(obj){
                    var cnt = Number($(obj).val());
                    console.log(cnt);
                    return cnt;
                },taberu:function(ore,str1,str2,cnt){
                    var o = "";
                    for(var i=0;i<cnt;i++){
                        o+=str1;
                    }
                    for(var i=0;i<cnt;i++){
                        o+=str2;
                    }
                    o+="たべる?";
                    $(ore).html(o);
                    return;
                }
            };
            $("#ore").click(function(){
                  console.log("oioioi・・投資信託");
                  var e  =  ajikan;
                  e.taberu("#obj",e.neko(),e.ajisen(),e.loop("#cnt"));
            });
        });
    </script>
  </head>
  <body class="dark">
      <div id="wrapper">
          <section class="component">
              <input type="text" value="" id="cnt">
              <input type="button" value="お!!" id="ore">
              <div id="obj">
              </div>
            </section>
      </div>
  </body>
</html>

 

タグ

, ajax.googleapis.com, AM, console.log, div id, div&gt, DOCTYPE html&gt, head&gt, html5shiv.googlecode.com, input type, link rel, meta http-equiv, return str, script src, script&gt, str1, stylesheet, title&gt, topcoat-desktop-dark.css, var ajikan, var str,