MW211 EXIT

devlog
jQuery/onイベント
2012年03月24日
onなんとかイベントとjQueryの(等価)関係は以下のとおり。
┌───────────────────┬──────────────────┐
│<id="id" onblur="function(){■}">     │$("#id").blur(function(){■});      │
├───────────────────┼──────────────────┤
│<id="id" onchange="function(){■}">   │$("#id").change((function(){■});   │
├───────────────────┼──────────────────┤
│<id="id" onkeydown="function(){■}">  │$("#id").keydown(function(){■});   │
├───────────────────┼──────────────────┤
│<id="id" onkeypress="function(){■}"> │$("#id").keypress(function(){■});  │
├───────────────────┼──────────────────┤
│<id="id" onkeyup="function(){■}">    │$("#id").keyup(function(){■});     │
├───────────────────┼──────────────────┤
│<id="id" onmousedown="function(){■}">│$("#id").mousedown(function(){■}); │
├───────────────────┼──────────────────┤
│<id="id" onmousemove="function(){■}">│$("#id").mousemove(function(){■}); │
├───────────────────┼──────────────────┤
│<id="id" onmouseout="function(){■}"> │$("#id").mouseout(function(){■});  │
├───────────────────┼──────────────────┤
│<id="id" onmouseover="function(){■}">│$("#id").mouseover(function(){■}); │
├───────────────────┼──────────────────┤
│<id="id" onmouseup="function(){■}">  │$("#id").mouseup(function(){■});   │
└───────────────────┴──────────────────┘
分類:jQuery
jQuery/スクロール領域の末尾を表示する
2012年03月23日
┌──────────────────────────────────────┐
│$("#識別子").scrollTop($("#識別子")[0].scrollHeight);                       │
└──────────────────────────────────────┘

「scrollTop()」メソッドでスクロール位置を指定するが、
そこに「scrollHeight」プロパティ(つまりスクロール位置の最大値=末尾)を入れる。
分類:jQuery
jQuery/クラスの追加削除
2012年03月07日
┌──────────────────────────────────────┐
│$(this).toggleClass("CSS");                                                 │
└──────────────────────────────────────┘
上記と下記は同一。
┌──────────────────────────────────────┐
│if ($(this).hasClass("CSS")) {                                              │
│  $(this).removeClass("CSS");                                               │
│} else {                                                                    │
│  $(this).addClass("CSS");                                                  │
│}                                                                           │
└──────────────────────────────────────┘
分類:jQuery
jQuery/submitボタン
2012年01月30日
「id」に「submit」という名称をふったボタンなどをクリックすると
submitが行われる処理は以下のように書ける。
┌──────────────────────────────────────┐
│$("#submit").click(function() {                                             │
│  $(this).parents("form").submit();                                         │
│});                                                                         │
└──────────────────────────────────────┘

「parents()」は直系の親をすべて遡ってチェックしてくれるので
引数に検索条件である「form」タグを指定すれば、直系の親のformにぶちあたる。
#formは入れ子ができないので、自身の直系の親のformは一つだけである。
┌──────────────────────────────────────┐
│body┬form┬button                                                          │
│    │    └button                                                          │
│    ├form─button                                                          │
│    └form─button                                                          │
└──────────────────────────────────────┘

でも、実際のところ「id」を直接指定した方が処理は速いので、
「form」タグに「id」を割り振ってしまう方が実用的かもしれない。
┌──────────────────────────────────────┐
│$("#submit").click(function() {                                             │
│  $("#form").submit();                                                      │
│});                                                                         │
└──────────────────────────────────────┘

後者だと、「id」の記述ミスに気をつけるとか、命名規則とか、
ちょっとめんどくさいのだが。
分類:jQuery
jQuery/セレクタのAND条件・OR条件
2012年01月19日
セレクタで「prefix_xxxx_suffix」みたいなIDを絞り込む方法はこれ
┌──────────────────────────────────────┐
│$("[id^=predix_][id$=_suffix]")                                             │
└──────────────────────────────────────┘
いわゆるAND条件ってやつだね。

「prefix_xxxx」も「xxxx_suffix」も(もちろん「prefix_xxxx_suffix」も)OKな
OR条件にするには「,」をつかう。
┌──────────────────────────────────────┐
│$("[id^=predix_],[id$=_suffix]")                                            │
└──────────────────────────────────────┘

さらにinputタグのtext属性(いわゆる入力欄)もAND条件でつけるとしたらこんな感じか。
┌──────────────────────────────────────┐
│$(":text[id^=predix_],:text[id$=_suffix]")                                  │
└──────────────────────────────────────┘

「((A && B) || (A && C))」みたいな感じだね。
分類:jQuery
jQuery/いろいろあるよね(2)
2012年01月18日
┌──────────────────────────────────────┐
│(1) $(this).css({backgroundColor:'#FF0000'});                               │
│(2) $(this).attr("style","background-color:#FF0000");                       │
│(3) $(this)[0].style.backgroundColor = "#FF0000"                            │
└──────────────────────────────────────┘
こいつらも全部同じ。

微妙に「backgroundColor」と「background-color」が違うから注意。

う~ん、ややこしや~。

例えば、tableタグで列を一つクリックすると行の色が変わる、みたいな処理でも
こう書くこともできれば
┌──────────────────────────────────────┐
│$("td").click(function() {                                                  │
│  $(this).parent().children().css({backgroundColor:'#FF0000'});             │
│});                                                                         │
└──────────────────────────────────────┘
こう書くこともできる。
┌──────────────────────────────────────┐
│$("td").click(function() {                                                  │
│  $(this).parent().children().attr("style","background-color:#FF0000");     │
│});                                                                         │
└──────────────────────────────────────┘
他にもいろいろあるよね。
分類:jQuery
jQuery/いろいろあるよね(1)
2012年01月15日
jQueryってやり方がいろいろあって、知らないと損した気分(不安な気分)。

┌──────────────────────────────────────┐
│(1) $(this).val()                                                           │
│(2) $(this).attr("value")                                                   │
│(3) $(this)[0].value                                                        │
└──────────────────────────────────────┘
これらは全部、同じ。

ちなみに値を代入したい場合にはそれぞれこう。
┌──────────────────────────────────────┐
│(1) $(this).val("値")                                                       │
│(2) $(this).attr("value","値")                                              │
│(3) $(this)[0].value = "値"                                                 │
└──────────────────────────────────────┘

これらの基本を踏まえて他の属性で処理に迷ったら流用すればよい。
(3)はprototype.jsっぽい書き方。
(2)はjQuery的な書き方。
そして(1)は特殊なjQueryに特化した書き方
(属性によっては該当するメソッドがない場合が多い)
ってとこかな。

jQueryにこだわらないのであれば、(3)にしとけばjQueryのない世界へ置換しやすい。
jQueryにどっぷりというのであれば(2)から入って(1)の知識を増やしていくって感じか。

(2)と(3)を把握できれば、立ち往生する機会が減るかも。(後で見直す(改善)のも重要)
分類:jQuery
jQuery/セレクタ徳川家康(2)
2012年01月14日
「$(this).children()」と「$(this).find()」の違い。

前者は子供だけ、後者は子々孫々まで。

家康の場合
「$(this).find("光圀")」はみつかるけど
「$(this).children("光圀")」はみつからない。


「$(this).find("慶喜")」とかまでOKだ。
分類:jQuery
jQuery/セレクタ徳川家康(1)
2012年01月13日
わかる人にわかればよい。
徳川家康が起点です。

家光から義直を捜す場合。

「$(this).parents()」=「秀忠、家康」だから

「$(this).parents("義直")」ではみつからない。

「$(this).parents()」ってのは、直系の先祖を辿ってくれる。

「$(this).parent()」だと、単数系だから親一人だけ(「秀忠」)

「$(this).find()」てのは子々孫々まで全部を網羅する。
#たぶん、引数に条件を指定して絞り込む使い方普通なんだろうけど

ってことは、
「$("家康").find()」=「秀忠、家光、家綱、義直、光友、頼宣、頼房…」だから

「$(this).parents().find("義直")」でみつかる。

律儀者だったら「$(this).parent().parent().find("義直")」かもね。
#いやいや、中途半端な律儀ぶりだけどね
分類:jQuery
JavaScript/disabledの錯覚
2012年01月11日
「disabled="disabled"」みたいな属性を付加することにより
その項目を入力不可とするとともに、POSTパラメータとして送信しなくできる。
(っていうか送信できないのが結構厄介だったりするけど)

でも、こいつは消滅したわけじゃない。
document.getElementById()とかでもしっかり扱ってくれる。
特にjQueryのeach()とかでもね。

チェックを外した瞬間に動的にdisabledにして、submitにチェックって時に
チェック対象外かなって錯覚するパターンだ。
分類:JavaScript、jQuery
前へ 1 2 3 4 5 6 7 8 9 10 次へ