X



jQuery 質問スレッド vol.7 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2016/11/02(水) 11:51:34.33ID:???
JavaScriptでDOM用ライブラリであるjQueryのスレです。

このスレはjQueryやjQuery UIの使い方やjQueryプラグインの作り方を質問するスレです。
jQueryを使って作る側のスレであって、こんなプラグインありませんか?と聞くスレではありません。
そういうのは自分で探してください。
ろくにサポートもされてなさそうな野良プラグインの使用はおすすめしません。

JavaScriptの質問は関連スレで質問して下さい。

■前スレ
+ JavaScript & jQuery 質問用スレッド vol.6 +
http://echo.2ch.net/test/read.cgi/hp/1465566635/

■関連スレ
+ JavaScript の質問用スレッド vol.122 +
http://echo.2ch.net/test/read.cgi/tech/1472426483/
+ JavaScript(ECMAScript)質問用スレッド vol.122 +
http://echo.2ch.net/test/read.cgi/tech/1472401404/
+ JavaScript の質問用スレッド vol.131 +
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
+ JavaScript & jQuery 質問用スレッド vol.6 +
http://echo.2ch.net/test/read.cgi/hp/1465566635/
02524days ◆6xK9k12f2U
垢版 |
2017/03/15(水) 08:43:34.81ID:rTO8PoDO
WEBプログラミング板のスクリプト改造スレから「web制作管理板のjQueryスレで聞いた方が良いかも」と誘導されて参りました。
荒らし報告ツールの改造についてどなたか御対応できないでしょうか。

詳細は下記となります。
http://tamae.2ch.net/test/read.cgi/php/1314546533/178

本当に「jQueryスレ」がここで正しいのか自身がなく、かつスクリプト改造依頼になりますので、
正しい対象スレッドなどがありましたら、そちらに誘導をお願いできましたらと思います。
0253Name_Not_Found
垢版 |
2017/03/15(水) 09:27:13.16ID:???
スレなければ作れば良いんだよ。
0254Name_Not_Found
垢版 |
2017/03/15(水) 09:34:05.48ID:???
>>252
これはめんどくさいな〜
これを改造するなら拡張機能になるけどめんどくさすぎる
1からサイト作ることになるけど誰が管理するの?
多分自分で勉強して作ったほうが良いと思う
もしかするとエクセルvbaの方が楽に作れるかもしれない
0255Name_Not_Found
垢版 |
2017/03/15(水) 13:53:38.91ID:???
if($(window).width() < 541)){
$(".foo").scroll(baz);
}else {
$(.bar).scroll(baz);
}
function baz() {
0256Name_Not_Found
垢版 |
2017/03/15(水) 13:59:50.81ID:???
以下の時、うまくまとめて書く方法はありますか?
無名関数に名前をつけたり、変数に入れずになんとかやろうとしていましたがこんがらがってきました

・スクロールさせた時に関数を実行
・画面サイズ(540pxがしきい値)でスクロールする対象のオブジェクトは変わる。モバイルは.foo、PCはwindow全体
・無名関数で実行したい
・変数や関数の名前を使いたくない

if($(window).width() < 541)){
$(".foo").scroll(baz);
}else {
$(window).scroll(baz);
}
function baz() {
/* 処理 */
}
0257Name_Not_Found
垢版 |
2017/03/15(水) 14:39:28.84ID:???
>>256
/*処理*/の内容に依存していて、コードも変わってくる気がする
変数など宣言はしたくないのはなぜか、はとりあえず置いといて

($(window).width()<541?$(".foo"):$(window)).scroll(function(){/*処理*/})
0258Name_Not_Found
垢版 |
2017/03/15(水) 14:45:39.48ID:???
>>257
おー、ありがとうございます!すごい!
0259Name_Not_Found
垢版 |
2017/03/15(水) 18:32:23.84ID:???
>>252-254
http://aa.2ch.net/test/read.cgi/mona/0000000000/600 2003/10/20 16:49:51.77 ID:abc+123/0
(URL) (日付) (時刻) (ID)の順

出力された書式4文字列は、時系列順に昇順ソートされていること

以下のような複数のURLへアクセスして、日付・時刻・IDを取り出して、
http://hanabi.2ch.net/test/read.cgi/wcomic/1437192131/117
http://hanabi.2ch.net/test/read.cgi/wcomic/1438080242/102-104

以下のように連結すれば良いのか?
http://hanabi.2ch.net/test/read.cgi/wcomic/1437192131/117 2016/12/24 14:59:42.97
http://hanabi.2ch.net/test/read.cgi/wcomic/1438080242/102 2016/12/24 14:59:51.98
http://hanabi.2ch.net/test/read.cgi/wcomic/1438080242/103 2016/12/26 13:43:51.12

その処理だけを、新しく作ったらどうか?
「こらこら団報告書生成」ツールのソースコードを分析して、修正するのは大変だろ
0260Name_Not_Found
垢版 |
2017/03/15(水) 22:52:38.19ID:???
>>257-258
一般論として、jQueryオブジェクトを三項演算子の評価値として使わない方がいい。
再利用しづらくなるし、コードによっては遅くなったり無駄ができたりする。
同様の理由でjQueryオブジェクトを変数に入れたり関数の戻り値するのもおすすめしない
(あとスペースは適切に入れたほうが良い。)

今回の場合はこう書いたほうが良いよ。
$($(window).width() < 541 ? ".foo" : window).scroll(function() {/*処理*/ });


これはこれで見づらいので俺ならこうするけどな。
var target = $(window).width() < 541 ? ".foo" : window;
$(target).scroll(function() {/*処理*/ });

更に言うならば、画面の大きさによってデザインを変えるっていうのは
通常CSSのMedia Queryを使うのがいい。
おそらくその閾値541っていうのはデザインのためにCSSに書いてあるでしょ?
コードでも同じことを書いたら二重になってしまう。

ちょっと俺はやったことないんでもっといい方法があるかもしれないけど、
例えばMedia Queryを使って要素の表示非表示させて:visibleセレクタで判別するとかね
0261Name_Not_Found
垢版 |
2017/03/15(水) 23:35:34.77ID:???
>>256
でさ、今更気づいたんだけど、
画面表示されてからサイズ変えた時大丈夫?

まああんまりやることはないと思うけどさ、
何か違和感あると思ったら、そこなんだったんだな。

通常イベントハンドラっていうのは最初のページ表示時につけて
それ以降付け替えたりしない。付け替えたりしなくても動くようにするんで
画面サイズで切り替えたりしないんだよね
0262Name_Not_Found
垢版 |
2017/03/15(水) 23:41:37.02ID:???
こうじゃないの?
にしてもscrollの対象が変わることなんてあるんけ?

$([$(".foo")[0],window]).scroll(function(){
//ここで分岐
});
0263Name_Not_Found
垢版 |
2017/03/16(木) 01:14:49.08ID:???
jQuery Mobile は、パソコン・スマホ共用
02644days ◆6xK9k12f2U
垢版 |
2017/03/16(木) 07:40:10.57ID:T/B05wZT
>>252
ご返答ありがとうございます

>>254
サイトぐらいは自分で作りますよ
そして色んな人に使って貰いたい
自分だけが報告するわけじゃなくみんなで報告しやすいようにと考えると
やっぱりこのようなWeb系のツールが最良ですので

>多分自分で勉強して作ったほうが良いと思う
良い悪いではなく出来る出来ないの問題でして

>>259
>その処理だけを、新しく作ったらどうか?
それができたらここには来てませんね
0265Name_Not_Found
垢版 |
2017/03/16(木) 08:24:01.15ID:???
>>264
なぜ、そんなに偉そうな態度をとれるのだろう?
サイトを自作するならJavaScriptも自分で作る気概を見せなよ
ここは制作依頼する場所ではなく、質問者が作るのを手助けする場だからね
丸投げはNG
02664days ◆6xK9k12f2U
垢版 |
2017/03/16(木) 08:48:21.67ID:T/B05wZT
>>265
やはり最初からこのスレは趣旨として正しくなかったと言うことですね

では>>252にも明記しましたように
正しい対象スレッドなどがありましたら、そちらに伺いたいと思います。

どこか趣旨に合致するようなスレッドをご存じないでしょうか?

お手数をお掛けします。
0267Name_Not_Found
垢版 |
2017/03/16(木) 08:51:56.12ID:???
>>264
ウダウダ言い訳せずに作ったほうが早い
プログラムなんて納期を考えなければいつか出来るもの

・入力。ajaxは使わない
・phpでfile_get_contentsでサーバーに保存
・エンコード
・htmlをパース
・配列に突っ込んでソート
・出力

これだけ。
セキュリティの知識不要だから楽勝
で、jqueryもajaxは使わないので移行はスレチ
02694days ◆6xK9k12f2U
垢版 |
2017/03/16(木) 08:55:23.96ID:T/B05wZT
>>268
ありがとうございました
感謝いたします
0270Name_Not_Found
垢版 |
2017/03/16(木) 14:04:17.85ID:???
>>268
そこは初心者スレであって制作依頼スレではないのではなくて?
質問者に学ぶ意志が全くないのなら、ランサーズとかに金出して依頼すべき案件に読める
0271Name_Not_Found
垢版 |
2017/03/17(金) 02:16:49.50ID:???
ソースコードを見ると、2chのHTMLには、
<div class="number"> タグと、<dt> タグを含む、2種類あって、
処理を分けて書いている

このソースコードの作者は、HTMLのタグを取り出すのに、正規表現を使っているから、
ここをブラウザ内蔵または、jQueryのHTML Parser を使って、
(URL) (日付) (時刻) (ID)の書式4文字列のタグを、取り出せば良いかも

ただ、その例には、<div class="number"> タグしかないから、
<dt> タグを使っているHTMLには、対応できない

それと、同時に取得できるHTMLを、10件までに制限した方がいい。
あまり多いと、2chへの営業妨害とみなされて、訴えられそう

まあ、そのソースコードを修正するよりも、新しく作った方が良さそう

JavaScript, jQueryは、WEBプログラミング板やプログラム板よりも、
この板の方が、やっている人が多い
0272271
垢版 |
2017/03/17(金) 11:42:41.49ID:???
ここにアクセスして、返ってくるHTMLは、
http://hanabi.2ch.net/test/read.cgi/wcomic/1438080242/102

<div class="post" data-date="NG" data-id="102" data-userid="" id="102">
<div class="date">2016/12/24(土) 14:59:51.98 </div>
</div>

(URL) (日付) (時刻) (ID)の書式4文字列のタグは、id="102" より取り出せる。
日付 : 2016/12/24
時刻 : 14:59:51.98
ID : data-userid=""

それらを連結すると、こうなる
http://hanabi.2ch.net/test/read.cgi/wcomic/1438080242/102 2016/12/24 14:59:51.98

今は、jQuery.ajax で、複数のHTMLを取得する方法を、調べている
0273Name_Not_Found
垢版 |
2017/03/17(金) 14:35:02.88ID:???
出力HTMLの仕様差を埋めるなら、datファイルをxhrまたはfetchで取得すればいいんじゃないかね
最も、質問者本人は作る気が全く無さそうだが
0274Name_Not_Found
垢版 |
2017/03/17(金) 22:57:01.22ID:OaN95QP/
まったくの初心者です。
お時間のある方、よろしければご教授願えますでしょうか。
if($(this).hasClass("mail")){
if($(this).val() && !$(this).val().match(/.+@.+\..+/g)){
$(this).parent().prepend("<p class='error'>メールアドレスの形式が異なります</p>");
}
}

if条件の&&前の$(this).val()は何を意味しているのでしょうか?
メアドの形式判定なら&&以降だけで足りている気がしてしまいます。
0275Name_Not_Found
垢版 |
2017/03/17(金) 23:19:38.07ID:???
>>274
$(this)だけでは分からない
大抵
$("foo").click(function(){
if($(this).hasClass("mail")){
if($(this).val() && !$(this).val().match(/.+@.+\..+/g)){
$(this).parent().prepend("<p class='error'>メールアドレスの形式が異なります</p>");
}
}
})
のように、何かのイベント元として$(this)が使われる
今回は<foo>が$(this)の対象になる
0276Name_Not_Found
垢版 |
2017/03/17(金) 23:29:55.20ID:???
>>275
説明不足で申し訳ありません。イベント部分はこうなっています


$("form").submit(function(){
$("input[type='text'].validate,textarea.validate").each(function(){
//メールアドレスのチェック
if($(this).hasClass("mail")){
if($(this).val() && !$(this).val().match(/.+@.+\..+/g)){
$(this).parent().prepend("<p class='error'>メールアドレスの形式が異なります</p>");
}
}
});
});

ここでの$(this)は
input[type='text'].validate もしくは
textarea.validate で合っていますか?
0277Name_Not_Found
垢版 |
2017/03/17(金) 23:40:20.65ID:???
回答者がアホ。無断なやり取りすんな。
単に未入力の時にエラーにしたくないだけだ
0278Name_Not_Found
垢版 |
2017/03/17(金) 23:46:59.14ID:???
>>277
if($(this).val())
で、$(this)に何らかの値が入っていると
条件を満たす ということでしょうか?
0280Name_Not_Found
垢版 |
2017/03/18(土) 00:13:48.09ID:???
>>279
なるほど!trueが返ってきて条件成立、なのですね。

皆様ありがとうございました。とても助かりました。
0281271
垢版 |
2017/03/18(土) 20:08:14.39ID:???
複数のajax処理と、2chの返信から、DOMを構築して、
jQueryでデータを取り出す所を、今研究している

元のHTMLは、ajaxで2chへアクセスして、その返信をHTMLに表示するなど、なかなか凝っている。
こういうループ処理なら、AngularJSを使いたくなってくる

2chで、こういうツールを作れる人は、
プログラム板のVBScriptのスレ主である、ピラフだけかもw

1週間経っても、誰も作れない時は、ピラフに頼むしか無さそう
0282Name_Not_Found
垢版 |
2017/03/18(土) 20:16:00.18ID:???
作るのは構わんが別のとこでやってくんね
0283Name_Not_Found
垢版 |
2017/03/19(日) 02:36:50.10ID:???
ピラフに頼んだからもういいよ
0284Name_Not_Found
垢版 |
2017/03/23(木) 21:26:07.17ID:???
無名関数のfunction(){}ですが、この'function'を置き換えることってできますか?
0285Name_Not_Found
垢版 |
2017/03/23(木) 21:26:31.07ID:???
すいません、無名関数でなく、関数の宣言でした
0287286
垢版 |
2017/03/23(木) 22:16:51.76ID:???
すまん
省略じゃなくて置き換えるだったか
0288Name_Not_Found
垢版 |
2017/03/23(木) 22:28:59.86ID:???
>>286
いえ、短くする方法を知りたかったので、とてもありがたいです
そんな記述方法があったのですね
0289Name_Not_Found
垢版 |
2017/03/23(木) 23:17:46.43ID:???
>>281
はっはっは、そのピラフってやつは無能だった
結局ピラフは作れなかったぞwww
0290Name_Not_Found
垢版 |
2017/03/23(木) 23:24:32.36ID:???
作ろうと思えば作れる
・みんなが使うのが確定している
・共同開発
なら俺も手伝うわ

頑張って作って、数人が使うだけは辛い
しかも2chって結構特殊なフォーマット何だよ。鯖によって変わる
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況