jQueryのカスタムイベントがIEだと上位エレメントに伝播してこない?(追記アリ)

IE9
次のようなコードを書いていたのだけど

$(".parent").on("custom", ".child", function(){ ... });
$(".child").trigger("parent");

customイベントハンドラが動いてくれない。childに直接割り当てた場合は動く。

原因未調査。

追記

今試したら、正常に動いた。
なので、
・以前自分の書いたコードがバグってた
・特定条件下でのみ発生する
のどちらかと思われる(前者かも)。

placeholder未対応ブラウザででplaceholder実現

placeholderの代替ライブラリはたくさんあるけれど、多くのものはvalueを取得したときにplaceholderのテキストがとれてきて困った。時間があって気が向いたら自分で作るのだけど。

で、value取得してもplaceholderのとれてこないものをいくつか探したけど、とりあえずこれを使うことにする。
GitHub - mathiasbynens/jquery-placeholder: A jQuery plugin that enables HTML5 placeholder behavior for browsers that aren’t trying hard enough yet

rubyのブロックのスコープ(引数とそれ以外での違い)

rubyのブロックのスコープについてちょっと勘違いしていたのでメモ
rubyのバージョンは1.9.3

まとめ

ブロックの引数
ブロックローカル
初出がブロック内の(=ブロック内で宣言された)変数
ブロックローカル
初出がブロック外の(=ブロック外で宣言された)変数
非ブロックローカル

テストコード

#!/usr/bin/env ruby                                                                                                                                                                                         

a = 0
b = 0

(1..5).each do |a|
  b = a
  c = a
end

p a  #=> 0
p b  #=> 5
p c  # undefined local variable

所感

上みたいなコードでbもブロックローカルだとか書いてあるサイトがあって混乱してた。

screenの設定とかいろいろ

起動時のメッセージを非表示にする

startup_message off

現在実行しているコマンドをウィンドウ名にする(in bash)

まず.screenrcに以下を記述(何もコマンドを実行していないときのウィンドウ名を"nop"とする場合)

shelltitle "$ |nop"

それから.bashrcなどに以下を記述

PS1="\u@\h:\w\\$ " #ここはお好みで変える
if [ "$TERM" = screen ]; then
    PS1='\[\033k\033\\\]'$PS1
fi
export PS1

なんでこれでウィンドウタイトル変えられるのかとか、詳しいことは前に調べたけど忘れた。

あ、そういえば、書き忘れていたけど、.screenrcのshelltitleコマンドで$としたところは、PS1の最後の文字(空白は読み飛ばして)と同じにする必要があるので、
PS1の最後に$以外の文字を使っている人は、それにあわせてshelltitleも変えること。

ちなみにこれを紹介してるページによっては、\033k\003の前後の\[と\]がないところもあるけど、
これがないとbashで履歴表示(Ctrl-PとかCtrl-Rとか)にプロンプトがずれることがあるので注意。

Chrome in MacBook Airでタッチジェスチャにアクション割り当て

Macbook Airを買った。
で、Google Chromeで、マルチタッチジェスチャでタブ閉じたりできないのかなーと思って調べてみたら、次のアプリでできるそう。

BetterTouchTool

簡単に設定方法など。BetterTouchToolのバージョンは0.785。

  1. アプリ一覧からBetterTouchToolを起動
  2. ウィンドウ左側のSelect Application欄下部の+ボタンをクリック
  3. Google Chromeを選択
  4. ウィンドウ右下部のAdd New Gestureをクリック
  5. Touchpad Gestureの欄からお好みのタッチジェスチャを選択
  6. Custom Keyboard Shortcutから、そのジェスチャを行ったときに押したことにさせたいショートカットキーを入力

MacChromeのキーボードショートカットは以下のページを参照。
Macのキーボードショートカット

もちろん Google Chrome以外でも、任意のショートカットキーに任意のジェスチャーを割り当てられる。

「TipTap 」とか「Triangle Swipe」とか名前だけだとよくわからないものもありますけど、各ジェスチャを選択するとウィンドウ中央下部にどういうジェスチャなのかがアニメーションで表示されるので、それを参考にしましょう。

ちなみに私はGoogle Chromeに対して以下のような設定をしている。

Pinch In
タブを閉じる(Command + W)
Pinch Out
タブを更新(Command + R)
TipTap Right
右のタブへ移動(Ctrl + Tab)
TipTap Left
左のタブへ移動(Shift + Ctrl + Tab)