jQuery

4pt

jQueryのjは小文字です。

Google AJAX API Loader

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>

コード

ajax

$.ajax({
  dataType: "json",
  data: {
    "key": "value"
  },
  cache: true,
  url: "http://path/to/request/",
  success: function (data) {
    alert(data);
  }
});  

getJSON

最近は別ドメインからでも受けられるようにとりあえずJSONPで作ることが多くなりました

$.getJSON('/path/to/server', {request: data}, function(response){
});


サーバ側でこうする

$obj = getObjFunction();
$callback = htmlspecialchars(@$_GET['callback']);
return "$callback(" . json_encode($obj) . ")";

onloadみたいなやつ

$(document).ready(function(){
  ...
}

// 競合回避のため、いつもこうしてる
jQuery(function($){
  ...
});

data

jQuery要素にデータを関連付けられる。便利だね。

$('#header').data('key', 'value');
console.log($('#header').data('key'));

$.each

引数がよくわからようになるのでメモ

$.each(myArray, function(key, value){
  console.log(value);
});

$.extend

jQuery.extend は覚えづらい

DOMオブジェクトとjQueryオブジェクト


DOMオブジェクトとjQueryオブジェクトが混在する。jQueryのあまり好きじゃないところ…。

$('div').each(function(){
  // thisはDOM
});

var jqueryDiv = $('div');    // jQueryオブジェクト
var domDiv = $('div').get(); // DOMを取得

色を使うアニメーション

標準ではできない。数値化されてないかららしい。

これを使う。
http://plugins.jquery.com/project/color

$.stop

fadeInやslideUpなどアニメーションは、定義した順にキューに入ってひとつずつ実行される。連続してイベントを起こすと、起こした回数だけ後から実行されて格好悪い。

そういう時に、動作中のアニメーションを全てキャンセルするのに使う

$('#button').click(function(){
  $('#target').stop().fadeOut(10000);
});
  // stop(clearQueue, jumpToEnd)
  // stop(true, false) がアニメーション的に違和感ない

このサンプルはとてもわかりやすい

[jQuery]こな機能があっただ。jQuery stop()
http://www.kantenna.com/pg/2010/01/jqueryjquery_stop.php

プラグイン開発

jQuery使う場合は基プラグイン化していった方がいい。
http://docs.jquery.com/Plugins/Authoring

プラグインのテンプレート

jQuery(function(){
  // ここにプラグイン共通のパラメータなど
  var commonParameters = {};

  $.fn.myPlugin = function(){
    // ここに要素固有の処理を書く
    
    // メソッドチェーンするため自分を返す
    return this;
  }
})

バグ?

IE8でtrのvisibleがおかしい

実証コード

<table id="target">
  <tr> 
  <td>hoge</td>
  <td>moge</td>
  <td style="display:none">sage</td></tr>
</table>  
<script type="text/javascript">
$(function(){
  var str = '';
  $('#target tr').children().filter(':visible').each(function(){
    str += $(this).text();
  });
  alert(str);
});
</script>

"hoge moge" が正しいだけど、IE8では "hoge moge sage" になる。
:visibleはwidthとheightが0以上であればvisibleだと判断してるだけど、
IE8ではtrがhiddenでもwidthに0以上の値を返すかららしい。

1.3.3では直るっぽい。
http://dev.jquery.com/ticket/4512

わから

  • 属性セレクタで「空でないやつ」を指定する簡単な方法(filter使ったらできたが)

リンク

ドキュメント
http://docs.jquery.com/Main_Page

jQuery開発者メモ
http://www.mikage.to/jquery/

jQueryを読み解く
http://gihyo.jp/dev/feature/01/jquery

「jQuery」について友人に書いてもらう。

あなたにとって「jQuery」とは?

ログインするとワンクリックでキーワードを投稿できます

ログインする 新規登録する

お気に入りの説明

2 pt
JavaScript と HTML の相互作用を強化する軽量な JavaScript ライブ ラリ。 最大の特徴は「$」から始まるDOMへのアクセスの良さである。 例えば1例になるが <div id="fuck">F...
もっと読む
2 pt
Microsoftも配布するようになったらしいですね。 いよいよ、標準ライブラリとしての地位が確固たるものになってきた気がします。
もっと読む
0 pt
Used by over 31% of the 10,000 most visited websites write less, do more 初心者のためのjQueryプログラミング入門 ノンプログラマーのためのjQuery入門 404 Blog Not Fou...
もっと読む

他の人の「jQuery」を見る