くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

Jquery

JQuery Autocompleteのあれこれ

jQuery UIのオートコンプリートを使ってて何個かメモ。

候補の数がそんなに無い時に、入力してなくても候補のリストを表示したい場合。

$("#hogefuga").autocomplete({ source: ["test","tamesi"], minLength: 0 });

minLengthを0にしておくと、入力しなくても↓キー押せば候補が出てくる。

途中で候補の中身を変えたい場合。

$("#hogefuga").autocomplete("option", "source", ["kawari","henkou"]);

候補を選択された時のイベントで処理したい場合

$("#targetdom").autocomplete({
    source: [],
    minLength: 0,
    //”値が変更されて”フォーカス外れたときに発火する
    change: function (e, u) {
        var cval = $(this).val();
        console.log(cval)
    },
});

↑はテキストボックス内の値が変更されてない場合は発火しない。

Webアプリで全体スクロールをさせないようにする(Jquery使用) その2

以前イベントとかごにょごにょして全体スクロールを止めるものを書いた。

最近、また必要になって、自分で1から作ってる場合はいいんだけど、他のオープンソースのライブラリ使ってる場合に、インベントのバブリングとか追っかけるのが発狂しそうになるので、手っ取り早く無効にする方法。

sample

モーダルウィンドウ(↑の感じのやつ)表示の時に中のコンテンツのスクロールをすると全体スクロールまでいっちゃうのが嫌。すごく嫌。もう一度言うけど、嫌い。

モーダルウィンドウ表示するイベントの処理内で以下を書く。

//スクロールバーごと消す
$("body").css({overflow: "hidden"});

で、だいたい裏の要素クリックでウィンド閉じるとか閉じるボタンで閉じるっていう動きにするのが普通だと思うので、そのイベントで以下を書く。

//スクロールバーを復活させる
$("body").css({overflow: "inherit"});

モーダルウィンドウ表示させてる場合は、これでだいたいうまくいく。

問合せ