技術のご紹介

技術のご紹介

このブログを購読する

IT開発センターBlog

ALLインクレ日誌ITニュース製品応用事例技術Tips技術リリース

モバインがiPhoneに対応しました!

こんにちは。プロダクト事業本部の堀米です。
今年も、たまにIT開発センターブログをお借りして記事を書かせてもらおうと思っているので、よろしくお願いいたします!

さて今回は、またまたモバインの宣伝です!
お待ちいただいていたお客様も多かった事と思いますが、スマートフォンの中でも最もシェアの高いiPhoneでの「携帯サイト表示サイズ最適化対応」を、この度実施いたしました。

iPhoneから携帯サイトを閲覧する場合、そのままだと文字が小さすぎて、見たいページ以外のリンクを間違ってクリックしてしまいがちでした。
携帯サイトもPCサイトも表示サイズを自分で変えて閲覧する事が少なくないと思いますが、モバインで携帯サイトを作成するだけで、iPhoneの幅に合わせた表示になってくれます。

もちろん、既にページ作成済みのお客様も、もう一度作り直すような作業は不要です!
これできっと、iPhoneで閲覧した際の「あっ、間違えて別のリンクをクリックしちゃった!」っていう事もほとんどなくなるのではないでしょうか。

今後も、他のスマートフォン端末でも快適にご利用いただけるよう、色々と試行錯誤中です。
2011年のモバインにも、どうぞご期待ください!

※本アップデートは管理画面のURL(https://emob.jp/admin/login.php)にてご利用中のお客様が対象となります。

PAGE TOP

【JavaScriptTips】あとから追加された要素のイベントもハンドルできるliveメソッド

こんにちは。プロダクト事業本部の佐藤です。

最近jQueryliveメソッドがとっても便利だったので、これについてメモしておきたいと思います。

■イベントハンドラを登録

jQueryでイベントハンドラを登録する場合、普通ならbindメソッドを使って、


$('button.hello').bind('click', function(){
    alert('こんにちは!');
});

のように書くか、もしくはイベントごとに用意されているメソッド(たとえばclickメソッド)を使って

$('button.hello').click(function(){
    alert('こんにちは!');
});

というように書くのが一般的かと思います。

これらはどちらも同じ意味で、コードが実行された時点で「button.hello」というセレクタにマッチする要素(つまりhelloというclass属性を持つbutton要素)を探してきて、その要素にイベントハンドラを登録しています。

そしてliveメソッドですが、これは以下のようにして使います。

$('button.hello').live('click', function(){
    alert('こんにちは!');
});

書き方はbindメソッドと同じです。しかし、意味はちょっと違っています。

liveメソッドを使った場合、今後そのセレクタにマッチする全ての要素に対してイベントハンドラが登録されます。bindはその時点でマッチした要素が対象でしたが、liveの場合はあとから追加された要素に対しても有効です。1度liveメソッドを呼んでおけば、そのあと要素が追加されたとしても、セレクタがマッチするならイベントがハンドルされるのです。

■サンプル

サンプルを作ってみました。

<!-- HTML -->
<p>
    <button type="button" id="add_button">ボタン追加</button>
</p>
// JavaScript
$(function(){
    $('button#add_button').click(function(){
        var $b = $('<button type="button" class="hello">ボタン</button>');
        $('p').append($b);
    });

    $('button.hello').live('click', function(){
        alert('こんにちは!');
    });
});

サンプルを開く

ボタン追加をクリックすると、class属性にhelloを持つボタンがどんどん追加されます。そして、どのボタンをクリックしても「こんにちは!」が表示されます。

「こんにちは!」を表示するイベントハンドラの登録は最初に一度しかおこなっていませんが、あとから追加されたボタンに対してもイベント処理が有効になっているのがわかります。

■やめるときはdieメソッド

liveメソッドで登録したイベントハンドラを削除するときは、dieメソッドを使います。

$('button.hello').die();
$('button.hello').die('click');
$('button.hello').die('click', handler);

引数なしの場合は、liveで登録した全てのハンドラを削除します。第一引数(イベントの種類)だけを指定した場合は、そのイベントのすべてのハンドラを削除します。第二引数(ハンドラ)まで指定した場合は、そのハンドラだけを削除します。

■使いどころを見つければ便利

通常のbindとの使い分けが難しいところですが、liveを使えば決められたclass属性をつけるだけで自動的にイベントがハンドルされますので、デザインとロジックの分離に役立ち、便利です。他にもいろいろ使える場面が考えられます。

思いがけないところでイベント処理が実行されないように気をつける必要はありますが、便利なので上手に使っていきたいものです。

PAGE TOP

2011年スタートです。

新年明けましておめでとうございます。
IT開発センターの齊藤です。

当社は本日1月4日(火)より2011年の営業を開始いたしました。年末の書き込みにある通り、IT開発センターでは年末年始休暇中もお客様サービスで何かあった場合いに動ける体制は整えておりましたが、こちらも幸い問題等は起きませんでした。

約1週間ぶりの出勤でしたが、全拠点全員が無事出社してくれており、朝からお客様からの年賀状を確認を行わせていただいております。年賀状も各社工夫を凝らしてあり、見ているだけでとても楽しくなりますね。

さて、インクレイブの2011年ですが、早速明日は毎週定例のモバインのバージョンアップが予定されています。また、昨年の社長ブログにもあります通り、春には新サービスのリリースも…こちらはもうすぐご案内できると思いますが、とにかくとても楽しみな事が控えている1年…ですが、もっともっと素晴らしいことを積み重ねた1年にしたいと考えています。

最後に…
旧年中お世話になった関係者の皆様、一緒に働いている仲間たちとご家族の皆さま。
本年もどうぞよろしくお願いいたします。

PAGE TOP