私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【jQuery】JavaScript ライブラリ総合質問所 vol.2

みんなの評価 :
レスフィルター : (試験中)
※1で代入されたファイル名を使ってPOSTしたいなら
※1での処理ブロックでまとめないと。
ajaxでの処理をおこなう場合は、ajaxの処理結果の
success/failを処理する関数内でまとめる必要がある。
あとは、$.Defferedとpipeをつなげると幸せになれるかも。
※1での処理ブロックでまとめないと。
ajaxでの処理をおこなう場合は、ajaxの処理結果の
success/failを処理する関数内でまとめる必要がある。
あとは、$.Defferedとpipeをつなげると幸せになれるかも。
>>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 使うほうがいいね。
※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 使うほうがいいね。
あっと
> postData[$(this).prop('name')] = res.file; // ※1 アップしたファイル名を返す
ここでの this は each() で回している時の thisとは違うから気をつけて。
一旦変数に入れておかないとダメだと思う。
> postData[$(this).prop('name')] = res.file; // ※1 アップしたファイル名を返す
ここでの this は each() で回している時の thisとは違うから気をつけて。
一旦変数に入れておかないとダメだと思う。
ajaxで通信する以上、結果が返ってくるタイミングも非同期だから
Defferedで結果が出揃うのを待つのはいい手段だと思う。
Defferedで結果が出揃うのを待つのはいい手段だと思う。
>>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とは違うから気をつけて。
ご指摘ありがとうございます。実用時に修正します。
ありがとうございます。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とは違うから気をつけて。
ご指摘ありがとうございます。実用時に修正します。
【サンプルコード】(いじる前のを載せておきます)
$(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');
});
});
$(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');
});
});
>>606
(Deferredの部分)
それループで type=fileがあらわれるごとにFileUpLoad に上書きしてるじゃない。
(だから、type=fileがひとつの時はうまく行ってないか?)
Deferred objectをまとめるのは $.when() なんだけど、こんなかんじではどうか?
var FileUpLoad; = $.Deferred().resolve(); // ダミーのDeferred objectを作って完了させておく
~略~
FileUpLoad = $.when(FileUpLoad, $(this).upload(略));
他にも方法有りそうだけど。
(Deferredの部分)
それループで type=fileがあらわれるごとにFileUpLoad に上書きしてるじゃない。
(だから、type=fileがひとつの時はうまく行ってないか?)
Deferred objectをまとめるのは $.when() なんだけど、こんなかんじではどうか?
var FileUpLoad; = $.Deferred().resolve(); // ダミーのDeferred objectを作って完了させておく
~略~
FileUpLoad = $.when(FileUpLoad, $(this).upload(略));
他にも方法有りそうだけど。
>>609
わかってないのかよ。
A = $.when(B, C, ...);
は B,C,… すべてが完了したら、Aに登録したcallback関数が呼ばれる。
だから、$.update()の返り値を全部引数に並べればOKなんだけど、
そうは出来ないのであーいうコードになった。
蛇足ながら、元のコードは
var a;
a = $.update();
a = $.update();
a = $.update();
a.完了したら();
と同じだから、最後の$.updat()の完了状態しか見てないってことな。
わかってないのかよ。
A = $.when(B, C, ...);
は B,C,… すべてが完了したら、Aに登録したcallback関数が呼ばれる。
だから、$.update()の返り値を全部引数に並べればOKなんだけど、
そうは出来ないのであーいうコードになった。
蛇足ながら、元のコードは
var a;
a = $.update();
a = $.update();
a = $.update();
a.完了したら();
と同じだから、最後の$.updat()の完了状態しか見てないってことな。
自由度の高いデザインができるモーダルダイアログのjQueryプラグインでオススメありませんか?
ajax()やpost()でのcsrf対策はどうしてますか?
正直今まで全く意識してなかったのですが調べてみるとあまり情報がなく
いくつかあるものも「これだ」って感じのものがありません
どのように対処している、と教えてもらえると嬉しいです
よろしくお願いします
正直今まで全く意識してなかったのですが調べてみるとあまり情報がなく
いくつかあるものも「これだ」って感じのものがありません
どのように対処している、と教えてもらえると嬉しいです
よろしくお願いします
CSRFは、むしろサーバ側で対策しないとダメ
リファラを見るか、トークン使うかの2択かな。
リファラを見るか、トークン使うかの2択かな。
Youtubeの動画をポップアップで再生するのはあるけど、
ニコニコ動画も含めて同じことできるものってのは無いのかな?
ニコニコ動画も含めて同じことできるものってのは無いのかな?
スマホサイト向けにjQuery Mobile使いたいなとあれこれ評価して、
重いしバギーだしと捨てたのが1年前。
1.3.0出たぞと再評価してみたけど、やっぱりAndroid2.3向けには重すぎて
iOS6.1用でも若干重いしsafariだとなんかバグっぽい挙動が不安で
結局見送った。
今は1からスマホ用のCSS書いてる。。。俺に土日をくれ。。。
今月の休みねぇよ。。。
重いしバギーだしと捨てたのが1年前。
1.3.0出たぞと再評価してみたけど、やっぱりAndroid2.3向けには重すぎて
iOS6.1用でも若干重いしsafariだとなんかバグっぽい挙動が不安で
結局見送った。
今は1からスマホ用のCSS書いてる。。。俺に土日をくれ。。。
今月の休みねぇよ。。。
jQuery Mobileマジで使い物にならんね、他のも大体同じ
勧めようとしてるIT系記事とかあるけどふざけんなって言いたくなる
Android4だとまともに動くの?
勧めようとしてるIT系記事とかあるけどふざけんなって言いたくなる
Android4だとまともに動くの?
ちょっとした(と言っても程度の差はあると思いますが)JQueryプラグイン作成を
ネット経由で予算提示して受注を募るこてできるサイトあったと思うのですがどこでしたっけ?
あるいは捨てアドいただければ概要をお知らせしますので良かったら。
ネット経由で予算提示して受注を募るこてできるサイトあったと思うのですがどこでしたっけ?
あるいは捨てアドいただければ概要をお知らせしますので良かったら。
jquery mobileが実用レベルで動いたとして、jquery mobileを使えば>>641が土日休めるようになるほど短縮されるかっていうと、そうでもない気がする
>>643
お前の糞コードよりは100000000倍まし。
お前の糞コードよりは100000000倍まし。
セレクターをul imgで指定すると動作するが
ul li imgで指定すると動作しない…。何故だ…?
ul li imgで指定すると動作しない…。何故だ…?



類似してるかもしれないスレッド
- 【jQuery】JavaScript ライブラリ総合質問所 vol.3 (1001) - [98%] - 2014/6/18 20:58 △
- 【jQuery】JavaScript ライブラリ総合質問所 vol.1 (983) - [98%] - 2012/10/8 22:30
- JavaScript ライブラリ総合質問所 vol.5 (344) - [75%] - 2022/3/14 17:45
- JavaScript ライブラリ総合質問所 vol.4 (985) - [75%] - 2015/12/16 15:00
- jQuery ライブラリ 総合質問所 vol.4 (986) - [65%] - 2016/1/12 15:15
- 1行javascriptプログラミング (431) - [30%] - 2022/8/23 15:30
トップメニューへ / →のくす牧場書庫について