関連 html5 jplayer javascript node.js
下記、いつ書いたか覚えてない。。
jQueryはRuby(on Rails)の考え方と似ていると思う。動的言語をできるだけ構造的記述に使うから拡張性と保守性を両立。
Visual Studio (Microsoft Visual Web Developer)がjQueryに対応しているらしい。
ソースコードを閲覧できる
初めての jQuery として、Visual Basic や Delphi でよくやる題材を。
テキストボックスとボタンを一つ配置して、ボタンが押されると、テキストボックスの内容を hello world に書き換える。そして hello というメッセージボックス。
<html> <head> <script type="text/javascript" src="jquery-1.4.1.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#button1").click(function(){ $("#text1").val("hello world"); alert("hello"); }); }); </script> </head> <body> <input type="text" id="text1"/> <input type="button" id="button1" value="hello"/> </body> </html>
資料 の記事を試す。 コメントアウトした方としてない方と、どちらでも動いた。
<div>ボタンを押してみてください。 <button id="test">クリック</button> <p> <span id="my1">ここが書き換わります</span> </p> </div> <script type="text/javascript" src="jquery-1.4.1.min.js"></script> <script type="text/javascript"> //$(document).ready(function(){ // $("#test") // .click(function () { // $.get( "./msg.txt", // function(data){ // $("#my1").html(data); // } // ); // }); //}); jQuery(function($){ $("#test") .click(function () { $.get( "./msg.txt", function(data){ $("#my1").html(data); } ); }); }); </script>
上記の例は一部の環境で文字化けが起きたので、明示的に UTF-8 を使うようにした。
ついでに、文字属性の指定の実験もやってみた。
下記の例は Windows の IE8 と Firefox 3.6 と Chrome で動作確認済み。
msg.php
<?php header("Content-Type: text/html; charset=utf-8"); ?> テストです
jq-get.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div>ボタンを押してください。 <button id="test">クリック</button> <p> <span id="my1">ここが書き換わります</span> <span id="my2">ここは書き換わりません</span> </p> </div> <script type="text/javascript" src="jquery-1.4.1.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#test").click(function() { $.get( "./msg.php", function(data) { $("#my1").html(data); } ); $("#my2").css("font-size",30).css("color", "#808080"); }); }); </script> </body> </html>
since 2013-06-05
since 2013-06-11
複数の非同期イベントがすべて終了したら何かをする、といった処理は以下のように書ける:
<script type="text/javascript" charset="utf-8" src="./jquery/jquery-1.9.1.min.js"></script> <script type="text/javascript" charset="utf-8" src="./jqmobile/jquery.mobile-1.3.1.min.js"></script> <a data-role="button" id="test_btn">テスト</a> <script type="text/javascript" charset="utf-8" src="./test.js"></script>
function debugMessage(s) { alert(s) } function stringify(d) { var s = JSON.stringify(d) if (s.length > 100) { s = s.substring(0, 97) + "..." } return s } function fetch1() { var dfd = $.Deferred() var url = "http://localhost" var settings = {} $.ajax(url, settings).done(function(data) { debugMessage("done: " + stringify(data)) dfd.resolve(data) }).fail(function(data) { debugMessage("fail: " + stringify(data)) dfd.reject() }) return dfd.promise() } function fetch2() { var dfd = $.Deferred() var url = "http://localhost/~nishimotz" var settings = {} $.ajax(url, settings).done(function(data) { debugMessage("done: " + stringify(data)) dfd.resolve(data) }).fail(function(data) { debugMessage("fail: " + stringify(data)) dfd.reject() }) return dfd.promise() } $("#test_btn").on("click", function (e) { debugMessage("hello") $.when(fetch1(), fetch2()).done( function(data1, data2) { var s = "[1]:" + stringify(data1) + " [2]:" + stringify(data2) debugMessage("done-all: " + s) }).fail( function() { debugMessage("fail") }) })