フォーカスがあたったらボタンを表示して、ボタンが押されるまで表示し続ける
- <!DOCTYPE html>
- <html lang="ja">
- <head>
- <meta charset="UTF-8">
- <title>フォーカスがあたったらボタンを表示して、ボタンが押されるまで表示し続ける</title>
- <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
- <script type="text/javascript" src="knockout-2.1.0beta.js"></script>
- <script type="text/javascript">
- $(document).ready(function () {
- ko.applyBindings(new ViewModel());
- });
- function ViewModel() {
- var self = this;
- self.focusInput = ko.observable(false);
- self.inputData = ko.observable("");
- self.activeDataArea = ko.observable(false);
- self.addDataArea = ko.computed(function() {
- if (self.focusInput() == true)
- {
- // フォーカスがあたったときactiveDataArea()とtrueにしておくフォーカスが外れても問題ないように。
- self.activeDataArea(true);
- return true;
- }
- else if (self.activeDataArea() == true)
- {
- // フォーカスが外れ、activeDataArea()がtrueのとき
- return true;
- }
- return false;
- }, self);
- self.addData1 = function()
- {
- self.inputData("丸ごとしまうま");
- self.activeDataArea(false);
- }
- self.addData2 = function()
- {
- self.inputData("ねぎま");
- self.activeDataArea(false);
- }
- }
- </script>
- <style type="text/css">
- .inData
- {
- position:absolute;
- top:0;
- left:20px;
- width:200px;
- padding:10px;
- background:#f0f0f0;
- border:1px solid #ccc;
- cursor:pointer;
- }
- </style>
- </head>
- <body>
- <h1>フォーカスがあたったらボタンを表示して、ボタンが押されるまで表示し続ける</h1>
- <input type="text" data-bind="hasfocus: focusInput, value: inputData" /><br />
- <div style="position:relative;top:0;left:0;background:red;" data-bind="visible: addDataArea">
- <button data-bind="event: {click: addData1}, clickBubble: false">「丸ごとしまうま」を追加</button>
- <button data-bind="event: {click: addData2}, clickBubble: false">「ねぎま」を追加</button>
- </div>
- <input type="text" /><br />
- <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
- <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
- <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
- </div>
- <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
- Copyright © 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
- </div>
- </body>
- </html>