2015-02-01から1ヶ月間の記事一覧
例えば、jQueryでこんなサンプルを見かけます。 この$(function() {... });のイディオムはなんために存在するのか? <body> <script> $(function() { $( "#selectable" ).selectable(); }); </script> <ol id="selectable"> </ol> </body> $()関数はドキュメントツリーが完成したタイミングで実行されるようです。 $()…
YosemiteにOSをアップデートしたあと、bundle updateしたら、 fatal error: 'string.h' file not found となりjsonのインストールがこける。 Cのコンパイルで失敗しているようだが、標準インクルードファイルのパスが通っていない模様。 以下のコマンドで解…
ほぼ参照サイトままです。 やったことは、3つ app/views/layouts/application.html.erb に以下の2行を追加。 <%= stylesheet_link_tag controller.controller_name, media: "all" %> <%= javascript_include_tag controller.controller_name %> app/assets…
共通のモジュールを作成し、使用したいクラスにMixInする。 action_util.rb module ActionUtil def shake(x) print( "shake #{x}!" ) end end cafe.rb require './action_util' // この./はrails内では必要ない class Cafe include ActionUtil def serve sha…
Gemfile からturbolinksをコメントアウト # gem 'turbolinks' 2. bundle installし反映する。 3. app/views/layouts/application.html.erbから "data-turbolinks-track" => true の項目2つを削除する。 4. app/assets/javascripts/application.jsから //= r…
以下のJavaScriptにはバグがある。 print(1);if( true !== true ){ return; }; print(2); SpiderMonkeyで実行すると、return文がSyntax errorだと言われる。 js> if( true !== true ){ return; }; print( 1 ); typein:11: SyntaxError: return not in functi…
Array.some
厳密にはJavaScriptのバージョンはFireFoxブラウザで実装されたものを指し、ECMAScriptはすべてのブラウザで対応すべき仕様という意味合いのようだ。 JavaScript ( ECMAScript ) のバージョンがどのくらい古いものなのかよく分からないのでまとめる。 JavaSc…
WebStormにideavim pluginを入れて使ってみているが、タブの値を変更した時の改行後の自動インデント位置がどうもおかしい。例えば、2タブにしても改行したときに4の位置にカーソルが移動する。 原因がよくわからんので、以下の設定をしたら改行後に2の位置…
メモ 非推奨勧告 jQuery1.5から実装されたjqXHR.success(), jqXHR.error(), jqXHR.complete()コールバックメソッドはjQuery1.8以降非推奨となります。 これらが削除される前にあなたのコードでは、jqXHR.done(), jqXHR.fail(), jqXHR.always()を代わりに使用…
jQuery公式サイトのjQuery()を見ましょう。 jQuery() | jQuery API Documentation バージョンが少し古いですが、日本語訳がありました。 jQuery() / $() - jQuery API Documentation 日本語訳 jQueryは$と同じですが、引数に何を与えるかによって、動作が決…
DOMとjQueryの動作確認はspidermonkeyではできないので、ここではSafari8(MacOSX 10.10最新)を使います。以下環境構築手順です。 1) jQueryのサイトからをjquery-1.11.2.jsというファイルをダウンロードします。 具体的には「Download the uncompressed, dev…
var sports = { swim : function( arg1, arg2 ){ print( "swim " + arg1 + " km " + arg2 ); }, walk : function( arg1, arg2 ){ print( "walk " + arg1 + " km " + arg2 ); } }; sports['swim']( 1, "feel good!" ); // swim 1 km feel good! sports['walk'…
keys Array.forEach このサイトすごく分かりやすくていい。 オブジェクトをfor in で回した時、要素にはプロパティ名が入る var coffee = { coffee_type: 'cafe late', coffee_price: 350, coffee_sugar: 1, coffee_pour : function() { print("pour"); } };…
Safari拡張を作る上で、ツールバー項目の意味がよく分かっていなかったが、理解できたのでメモしておく。 「ツールバー項目」には複数の項目が設定できるが、例えば3つのツールバー項目を作り、3つとも「デフォルトで取り込む」のチェックをつけた場合、ブ…
関数を引数に取る関数の複雑なケースです。 function process(f) { f( function(name, g) { print( name ); g( 100 ); }); } process( function(h) { h( "hoge", function(value){ print( 2 * value ); }); h( "fuga", function(value){ print( 3 * value );…
addEventListener(),removeEventListener()というのはWindowオブジェクト、Documentオブジェクト、Elementオブジェクトに存在するメソッド。(他にもある) 引数の数と型は以下の通り。 addEventListener( 'hoge', f, false ); removeEventListener( 'hoge', f…
無名関数リテラルをその場で呼び出すというJavaScriptイディオムがあります。 性質を見てみます。 (function () { function hoge() { print( "fuga" ); } hoge(); // fuga })(); hoge(); // typein:25: ReferenceError: hoge is not defined 関数内で宣言さ…
JavaScriptの関数はオブジェクトなのでプロパティを追加できます。 名有り関数を定義して呼び出しています。 関数名が自分自身の関数オブジェクトを表します。 1) 関数内部で識別子プロパティを追加するケース function obj() { obj.fuga = 4; print( obj.fu…