のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,063,103人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレ【jQuery】JavaScript ライブラリ総合質問所 vol.2

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    601 = :

    ※1で代入されたファイル名を使ってPOSTしたいなら
    ※1での処理ブロックでまとめないと。

    ajaxでの処理をおこなう場合は、ajaxの処理結果の
    success/failを処理する関数内でまとめる必要がある。

    あとは、$.Defferedとpipeをつなげると幸せになれるかも。

    602 :

     

    603 = :

    >>599
    ※2よりもあとに※1が動くだろうからそういう書き方は無理やね。
    >>601 がいうようにDeffered でなんとかなると思うけど、>>596 のやり方でやるんならこんなのはどうか

    $("form").submit(function () {
    var postData = {};
    var count = 0;
    $(this).find('input').each(function () {
    ~略~
    } else if ($(this).prop('type') == 'file') {
    count++;
    $(this).upload('upload.php', function (res) {
    postData[$(this).prop('name')] = res.file; // ※1 アップしたファイル名を返す
    count--;
    post();
    }, 'json');
    ~略~
    });
    function post() {
    if (count > 0) {
    return;
    }
    $.post('script.php', postData, function (data) {※2
    // 書き込み後処理
    });
    }
    post();
    return false;
    });

    あーでもエラー処理のこと考えると Deffered 使うほうがいいね。

    604 = :

    あっと

    > postData[$(this).prop('name')] = res.file; // ※1 アップしたファイル名を返す

    ここでの this は each() で回している時の thisとは違うから気をつけて。
    一旦変数に入れておかないとダメだと思う。

    605 = :

    ajaxで通信する以上、結果が返ってくるタイミングも非同期だから
    Defferedで結果が出揃うのを待つのはいい手段だと思う。

    606 = :

    >>601>>605
    ありがとうございます。Deferredは難しくてよく解らなかったのですが、色々調べながらチャレンジしてみました。

    $("form").submit(function() {
    var postData = {};
    var FileUpLoad;
    $(this).find('input').each(function() {
    ~略~
    } else if ($(this).prop('type') == 'file') {
    FileUpLoad = $(this).upload('upload.php', function(res) {
    postData[$(this).prop('name')] = res.file;
    alert('アップロード完了'); // ※1
    }, 'json');
    ~略~
    });
    $.when(FileUpLoad).pipe(function(){
    return $.post('script.php', postData);
    }).done(function(){
    alert('POST送信完了'); // ※2
    });
    return false;
    });

    どうもうまくいきません・・・。
    理想としては※1→※2の順にしたいのですが、上記では※2→※1となってしまいます。

    >>603-604
    コード参考にさせていただきます。
    > ここでの this は each() で回している時の thisとは違うから気をつけて。
    ご指摘ありがとうございます。実用時に修正します。

    607 = :

    【環境】IE10
    【何をしたのか】メニューがマウスオーバーで動くタブを作りましたが
    アクティブなタブが選択されている時にそのタブのみアニメーションを止めることが出来ません。
    説明が下手なので、スクショです(影が変なのはCSSスレで聞きます…)
    試しに「not」を使って.select以外は動かすという記述をしてみたのですが
    元々html上でメニュー1に.selectを入れているため
    別なタブがアクティブでもメニュー1だけ動かないということになってしまいました。
    どなたか解決策をお教えください。よろしくお願いいたします。

    608 = :

    【サンプルコード】(いじる前のを載せておきます)
    $(function() {
    $("#tab li").click(function() {
    var num = $("#tab li").index(this);
    $(".content_wrap").addClass('disnon');
    $(".content_wrap").eq(num).removeClass('disnon');
    $("#tab li").removeClass('select');
    $(this).addClass('select')
    });
    });
    $(function() {
    $("#tab li")
    .hover(
    function(){
    $(this).stop().animate({
    'marginLeft':'-10px',
    'paddingRight':'50px'
    },'fast');
    },
    function () {
    $(this).stop().animate({
    'marginLeft':'0px',
    'paddingRight':'40px'
    },'fast');
    });
    });

    609 = :

    >>606
    (Deferredの部分)
    それループで type=fileがあらわれるごとにFileUpLoad に上書きしてるじゃない。
    (だから、type=fileがひとつの時はうまく行ってないか?)

    Deferred objectをまとめるのは $.when() なんだけど、こんなかんじではどうか?

    var FileUpLoad; = $.Deferred().resolve(); // ダミーのDeferred objectを作って完了させておく
    ~略~
     FileUpLoad = $.when(FileUpLoad, $(this).upload(略));

    他にも方法有りそうだけど。

    610 :

     

    611 = 610 :

     

    612 = :

    >>609
    おおおお!出来ました!
    ありがとうございます!

    原理的に何故出来たのかはあまりよく解ってないのですが、とにかく出来て良かったです。
    お世話になりました。

    613 = :

    >>609
    わかってないのかよ。
    A = $.when(B, C, ...);
    は B,C,… すべてが完了したら、Aに登録したcallback関数が呼ばれる。
    だから、$.update()の返り値を全部引数に並べればOKなんだけど、
    そうは出来ないのであーいうコードになった。

    蛇足ながら、元のコードは
    var a;
    a = $.update();
    a = $.update();
    a = $.update();
    a.完了したら();

    と同じだから、最後の$.updat()の完了状態しか見てないってことな。

    614 :

     

    615 :

     

    616 :

     

    617 :

     

    618 = :

    自由度の高いデザインができるモーダルダイアログのjQueryプラグインでオススメありませんか?

    619 = :

    やわらかいなり

    620 :

     

    621 :

     

    622 = :

    やわらかいなり

    623 :

     

    624 :

     

    625 = :

    やわらかいなり

    626 :

    ajax()やpost()でのcsrf対策はどうしてますか?
    正直今まで全く意識してなかったのですが調べてみるとあまり情報がなく
    いくつかあるものも「これだ」って感じのものがありません
    どのように対処している、と教えてもらえると嬉しいです
    よろしくお願いします

    627 = :

    やわらかいなり

    628 :

     

    629 = :

    やわらかいなり

    630 = :

    CSRFは、むしろサーバ側で対策しないとダメ
    リファラを見るか、トークン使うかの2択かな。

    631 :

     

    632 :

     

    633 = :

    やわらかいなり

    634 :

     

    635 = :

    やわらかいなり

    636 :

    Youtubeの動画をポップアップで再生するのはあるけど、
    ニコニコ動画も含めて同じことできるものってのは無いのかな?

    637 = 634 :

     

    638 :

     

    639 = :

    やわらかいなり

    640 :

     

    641 = :

    スマホサイト向けにjQuery Mobile使いたいなとあれこれ評価して、
    重いしバギーだしと捨てたのが1年前。
    1.3.0出たぞと再評価してみたけど、やっぱりAndroid2.3向けには重すぎて
    iOS6.1用でも若干重いしsafariだとなんかバグっぽい挙動が不安で
    結局見送った。

    今は1からスマホ用のCSS書いてる。。。俺に土日をくれ。。。
    今月の休みねぇよ。。。

    642 :

     

    644 = :

    ちょっとした(と言っても程度の差はあると思いますが)JQueryプラグイン作成を
    ネット経由で予算提示して受注を募るこてできるサイトあったと思うのですがどこでしたっけ?
    あるいは捨てアドいただければ概要をお知らせしますので良かったら。

    645 :

     

    646 = :

    jquery mobileが実用レベルで動いたとして、jquery mobileを使えば>>641が土日休めるようになるほど短縮されるかっていうと、そうでもない気がする

    647 = :

    >>643
    お前の糞コードよりは100000000倍まし。

    648 = :

    セレクターをul imgで指定すると動作するが
    ul li imgで指定すると動作しない…。何故だ…?

    649 :

     

    650 = :

    やわらかいなり


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について