jQuery 質問スレッド vol.7 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
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/ >>519
コードはjsfiddleにでもUPしてくれ
複数レスにまたがってコードを分割して投稿するのはレスの無駄だから 前半
// JavaScript Document
$(function() {
var showFlag = false;
var topBtn = $('#ri-menu');
topBtn.css('bottom', '-50px');
var showFlag = false;
//スクロールが100に達したらボタン表示
$(window).scroll(function () {
if ($(this).scrollTop() > 50) {
if (showFlag == false) {
showFlag = true;
topBtn.stop().animate({'right' : '10px'}, 200); }
} else {
if (showFlag) {
showFlag = false;
topBtn.stop().animate({'right' : '-200px'}, 200);
}
}
}); >>525
ReferenceError: $ is not defined になっている上にHTML/CSSがないので動かない
$('#ri-menu') が存在しないからな
[JavaScript] ボタンを押して jquery.js を読み込むのは当然として、諸々を動くコードにしてくれないかね >>526 さん
返答ありがとうございます。
jsfiddleの使い方がよく分かって無いのでちゃんとなっているかどうか不安ですが…
html部分はどの程度貼り付けたらいいのでしょうか?
とりあえず、そのボタン部分とcss、移動先は貼りつけました。
あと、[JavaScript] ボタンを押して jquery1.9.1 を選択してみました。(実際は1.10.1使ってます。)
https://jsfiddle.net/x01yb2ga/6/
これでRUNをクリックしたら、何となくですけど同じような現象になりました! IE11からでは、2chのdatファイルにアクセスできないかも。
規格が変わったと言われる
漏れは、専ブラ開発者ではないし、
2chの規格には、色々あるから難しい
ひとまずHTMLから、特定のタグを抜き出しておく >>528
取れる
2ch.netじゃなくscの方を使う
このスレのdatファイル
https://goo.gl/B1I8Ge >>528
前から思ってるけど、名前は「NG抜き出しツール作成中」とかにしたほうが良くない?
初めてみた人はなんの書き込みかも分からないから、全く手伝ってもらえないよ
わかりやすい名前なら、優しい人が気づいて協力してくれると思う >>527
メニュー表示はcssの#ri-menuをright: -200px;に
一番上以外でリロードされた時に表示させるなら
scrollイベント登録後、$(window).trigger("scroll");でイベント強制発火させる
1回目スクロールしないのはtopBtn.clickで囲ってるのが余計
メニューがクリックされてからイベント登録したんじゃその回は発動しない 漏れは、依頼者じゃないよ。
最初に作っていた、271 だよ。
ただ、怪物ピラフがPowerShellで、あっという間に作ってしまったからw
2chのdatファイルは、仕様が変わるかもしれないし、
契約者以外が使うと、業務妨害で逮捕されるかもしれないし、
危険だから、やめておくわ
検索しても、怖い事ばかり書いてあって、プラス面が無い datファイルの仕様は長らく変わってないがな
それとも、datファイルの仕様が変わっても出力htmlファイルの仕様が変わらないと本気で信じているのだろうか 契約者以外が無断で、APIを使ったら即逮捕ですよとか、
2chの運営会社は、怖い事ばっかり書いてる
こいつら、ヤクザっぽい 気になるなら、datを公開しているscの規約を確かめるべき <div class="date">2016/12/26(月) 13:43:51.12 </div>
<div class="date">2017/04/19(水) 22:11:42.38 ID:???</div>
<div class="date">2015/07/28(火) 19:44:02.47 ID:UH8Hs44C0</div>
<dt>6 :<a href="mailto:sage"><b>login:Penguin</b></a>:2017/03/20(月) 00:15:08.66 ID:IK95VxlG</dt>
こらこら団では、日時・IDさえ取れればよいけど、4 タイプある。
ID が無かったり、??? やアルファベットなど、様々な仕様を作っている。
設計が素人で、手に負えない
datファイルでは、次のデータとの切れ目が分からないから、困る。
むしろHTMLで取得した方が、データの終わりにタグがあるから、判別しやすい datファイルはごく単純なCSVだから一意な処理でコードを書けるでしょ 【2chまとめ対策?】2ちゃんねるがdatを廃止!
今後はAPIでの提供で無断でクロールすると違法に!
http://www.yukawanet.com/archives/4827167.html
やっぱり、契約者以外が無断で、datファイルにアクセスすると、逮捕されそう
逮捕されるのも、馬鹿らしい。
HTMLから、データを取得しておくわ scの管理人は2ちゃんねるの管理人とは別なんだがな >>539
2ちゃんねるの主張を遵守するならAPIを使用せずにアクセスする事を禁じているから、DOMでアクセスするのもNGだと思うけど
https://developer.2ch.net/ で開発者登録を申請すべきだよ datデータ取得は駄目と認識している人が、なぜWebスクレイピングが許可されると思ったんだろ datもHTMLも公開情報だよ
datだけ禁止してHTMLを許可する明確な理由がない htmlでもクロールしてることはバレバレなんだよなぁ
結局逮捕されるリスクは変わらないんだが >>531 さん
ありがとうございます!
無事予定通りの動きになりました!! sc は、2chを回って、データを収集しているから、タイムラグがあるし、
2chから禁止される可能性が高い
ツールでアクセスしても、手入力でアクセスしても、基本的には同じ
〜/1〜1000
みたいに、スレの全データを、頻繁に取得していれば、
その人が業務妨害で逮捕される
ツール製作者としては、1要求毎に2秒ほど、sleep しておく。
要求も、10〜20ぐらいに制限しておく
まあそれでも、2chぐらい怖い会社なら、ツール製作者も刑事告訴してくるかも。
2chは。ちょっとでも無断でAPIにアクセスすれば逮捕するぞ、
って公言している会社だから
本当は、こういう会社とは、関わり合いにならない方がいい。
アクセスする者に、こういう脅しをするなど、あきらかに普通の会社とは違うから SCからのアクセスなんかちょっと本気出せば締め出せると思うのだがなんで取り組まないんだ?
ひょっとして茶番なのか? >>550
いたちごっこだから。
締め出した所で本質的に2chがアカウントなしに
見れるものである以上、回避策はある。
だからそんなものに頼るよりも、
法律を使って正々堂々と対応したほうが効率がいい。 ユーザーに受け入れられる2ch代替サービスが現れないにはなぜなんだ
2chがブラックということはみんなわかってる筈なのに >>554
1000で終わるシステムなんてめんどくさいだけだよ
ブラックが好きな人が残っているだけ >>554
2chは古臭いシステムで真似するメリットがまるでないから
質問掲示板としてはstackoverflowが頭一つ抜けて優秀な印象だな すみません、わかる方がいらっしゃれば教えてください。
表の画面表示が完了したところで、表の各行にプログレスバーを追加するスクリプトを実行したいのですが、
「表の画面表示→プログレスバー追加スクリプト実行」ではなく、
「画面真っ白→しばらくたってからプログレスバーが追加された状態で表が画面表示」
となってしまいます。
参考になりそうなサイトから以下のようにコードを作ったのですが、
「表の画面表示→プログレスバー追加スクリプト実行」としたい場合、どのようにすれば良いでしょうか。
<html>
<body>
<table id="target">
〜略〜
</table>
</body>
</html> <script>
var target = $('<table id="target"></table>');
target.ready(function() {
プログレスバー追加処理
});
</script> >>558です。
スクリプト部分にwindow.onload や jQuery(function() { を
試したのですが、どうしても「画面表示→スクリプト実行」ができなくて、
実現方法をさがしている際に>>558のようなコーディングをしている
サイトにあたり、とりあえず試してみた次第です。
window.onload や jQuery(function() { では
「画面表示→スクリプト実行」はできないのでしょうか。 >>561
出来てるから、出来ないコードを出しなさい。
jQuery(function () {
alert('スクリプト実行');
});
動的に挿入されるDOMノードは動的処理の中で上手くやりなさい。 >>557です。
ありがとうございます。
表の作成処理は>>557の通りです。
スクリプトは以下のようにしていますが、
「表の画面表示→プログレスバー追加」にはならず、
画面表示までしばらく真っ白な画面のままで、
プログレスバーが追加された状態で一気に表が画面表示されます。
スクリプトは以下の通りです。
$(window).on('load',function(){
プログレスバー追加処理
});
ちなみに>>558でも同じ現象でした。 onloadは表示されたではなく必要なリソースの読み込みが終わっただからね
たいていのブラウザはページ読み込み時は表示開始に若干ディレイかけて高速化してるし
バカでかいテーブルだとレイアウト計算に時間かかったりするし
タイマーで適当に遅延させればいいんじゃない? >>563
プログレスバー追加処理がないようだが…。
非同期処理なのでは? cssのtable-layoutをいじれば何とかなりそう
テーブルの幅、各セルの幅、バー含むセルの中身などによるからその辺ほぼ全文見ないと何とも言えん https://www.w3schools.com/howto/howto_js_accordion.asp
このサンプルでは、クリックしたSectionがどんどん開いていきます。
それを、どれかのSectionを開いたら、今開いているSectionが閉じるようにしたいのですが、
どうすれば良いでしょうか? クリックしたら一旦全部閉じる処理をして
同時にクリックした奴だけを開けば良いんだよ semooh.jpまだ生きてたのかよ
一刻も早く滅んで欲しい jQuery+関数で検索するとよく引っかかるんだよな
内容考えるから更新してほしいわ 基本、公式サイトしか読まないからどうでもいい
日本語のサイトはどれも信用してない
自己検証すれば、ある程度は気が付けるレベルだしな 教えてください。
4月〜翌年3月までのラジオボタンを作成しました。
<input type="radio" name="month-radio" id="btn_sel_MM"
/>(MMには月が2桁で入る)
それぞれ name="month-radio" とし、IDで差異化しています。
行いたいことは、現在の日時を取得しその月のボタンをjavascriptで疑似的にクリックさせることで
クリックイベントを発生させることです。
その疑似的なクリック処理を
$('#btn_sel_10').trigger('click');(例:10月を疑似的に選択した場合)
でやったのですが、イベント受け取りの
$(function() {
$('#select-form input[name=month-radio]').on('click keydown
keyup keypress ', function(e) {
});
〜処理〜
});
で受け取ることができません。
(月ボタンは10月が選択されていますが、クリックイベントが発生しない。)
わかる方がいらっしゃれば、教えていただけないでしょうか。 うまく動かない時はコードを短くして原因を絞り込むと良いと思う
これじゃダメ化
$('#select-form input[name=month-radio]').on('click', function(e) {
});
〜処理〜
}); 574さん
早速ありがとうございます。
それもやってみたのですが、だめでした、、、 $('#select-form input[name=month-radio]').on('click keydown
keyup keypress ', function(e) {
alert('xxx');
});
}); 577さん
ありがとうございます。
click keydown keyup keypress
もやってみましたが、やはりイベントを受け取らないようです。 $('#btn_sel_10').trigger('click');
でイベント停止か何かしてないか あとこの場合は、changeイベントを捉えるだけで良いと思うけど 581さん
本当ですか、自分のコードをもう少し簡略化して、試してみます。
最初はchangeでやっていたのですが、不要なところでイベントが何回も発生してしまって、やむなくclickに変更した次第です。 >>583
> 不要なところでイベントが何回も発生してしまって、やむなくclickに変更した次第です。
これなぁ、こうなるからtriggerは使わないほうが良いよと
書こうと思ったんだよ。楽になることもあるから言わなかったけど。
これ以外にもtrigger多用してない?
だったら関数を作って、その関数を直接呼ぶ or イベントハンドラにしたほうがいいよ jQueryをjapanQueryみたいに国産のものと思っていたのは私だけですよね? <script src="file.js">
window.onload = function () {
initFunc();
};
</script>
こういう書き方をしても実行出来ないようですが、これはダメですか? >>586
ダメです
srcかインラインどちらかで >>587
レスありがとうございました。
なぜ出来ないのでしょうか?
こういう記述をしても自然な感じだと思うのですが。 >>588
実は俺も同じことを考えたことがあるけど、仕様と納得するしかない
そこを考えても時間の無駄だぞ document.addEventListener("mousemove",や .on("mousemove",
でマウスの動きを取得したいのですが、
Googleアドセンスなどの広告の上をマウスが動くとイベントが来ない場合があります。
広告の上でも確実にイベントを取得する方法はありますか? 広告上のイベントが拾えないのは、たぶんiframeになってるせい。
(スタイルやスクリプトの干渉を嫌ってるのかしらんが、結構よくある。二重三重になってることも)
で、iframe内部のイベントの伝播は内部のdocumentで止まるし、広告ってことはクロスドメイン制限で内部へのイベントハンドラ設定も不可だろうから、mousemoveイベントを拾うのはかなり厳しいんじゃないかと。
何がしたいのかわからないからなんとも言えないが、iframe要素のmouseenter/mouseleaveは拾えるはずなので、それで事足りるのであればこちらで。 >>591
なるほど、ありがとうございました。
目的は単純な実験です。マウスを動かすとその軌跡に沿って画像が動くなど。 広告の上を覆うような透明な空ボックスでも追加しとく それ考えたけど、多分色々なところで弊害が出ると思う >>596
mousedown のタイミングでボックスを外すとかでうまくいかないかな
で、 1秒後に復活
ちゃんと広告に click 発火されるかあやしいが >>596
君、頭いいな。
実験結果を教えてくれ。 質問です
validate engineで画面の入力チェックをしているのですが、
submit以外のタイミング、例えば特定のボタンを押された時に、
formのある一部分、たとえば特定のsection単位でvalidate engineを発動させたいです
formでsubmitのタイミングで…というのはできてるのですが、
上記のように使用するにはどうしたらいいんでしょうか? ちなみに最終的にはformの全ての内容をsubmitしてDB登録にいきます なんかまたjQueryプラグインにする必要がない物を
jQueryプラグインにしている臭がするな 数行のためにjQueryを読み込みするのは無駄な行為だと先生に注意されたのですが具体的にどの変が無駄なのか教えて欲しいです >>602
jQueryは主にDOM操作などの生産性を上げるjavascriptライブラリ
数行なら生産性の向上は殆ど見込めないから無駄 >>602
具体的に説明。
影響があるのは何Mといった大きなjQueryの内容を使うスクリプトやサーバー管理者です。
一件のjQueryを読み込む程度なら気にする必要はありませんが、アクセス数の多いウェブサイトだと必然的にjQueryのリクエストも増えます。
その結果、サーバー稼働率・負荷上昇に繋がります。
サーバー性能が良ければさほど気にする必要はありません。
ですが少しでも快適にするためには無駄を省く必要はありますよ。
ちなみにCDNは接続できない地区またはブロックされることもあります。日本でも繋がりにくいときもありますので業務用としてはお薦めできません。 >>602
少しならネイティブ
簡単なものならjQuery
大きなものならもっと便利なものあるから探して使え
jQueryは旧バージョン使われなくなったらオワコンになるかもな クリックされた要素と、その次の要素をセレクタにしたいと考えています。
thisと次の要素となると思うのですが、どのように指定すればいいのでしょうか? >>607
ありがとうございます。
単体ではなくthisとthisの次を、まとめて記述できたらいいなと思っているのですが、
方法はありますか?
↓のような感じで・・・
$(this, thisの次)... 初心者ですが質問したいです。
・@社員番号と名前の
セレクトボックスがあります
・Aセレクトボックスが選択されたら
社員番号、名前、メールアドレス、電話番号
を下に表示する
・非同期通信(その他大量の項目編集中の一部のため)
画面起動時@のセレクトボックスを作成しています。
Ajaxで@でセレクトされた社員番号から、
社員情報を取得してAを描画、が一番楽ですが、
すでに@のセレクトボックス作成時にその情報は横並びで持っているんです(メールアドレス、電話番号)
Ajaxでわざわざdbアクセスしなくても
jqueryだけで表示することはできますか?
セレクトボックスに隠しで持たせることなどできるのでしょうか?
わかりにくかったらすいません
よろしくお願いします。 >>608
目的がよく分からないけど
統合したいなら配列にして参照したら?
var elem = [this, this.nextSibling];
>>609
持ってきたデータを変数に代入しておいて使ったら? >>610
hiddenで画面に全て隠し持つってことですか?
それともselectのoption内に隠し持てたりします?
普通のアプリケーションだと当たり前のことが
webだと値の保持ができないので
どうしたらいいのかな?と。 >>612
hiddenを使うこともできるし、jQueryを使えば
各要素に関連したデータを持つための
data()メソッドというものがある >>610
たびたびどうも。
教えていただいたのを試してみましたが、自分ではできませんでした。
すみません・・・
セレクタの
$(this)...
と
$('+p',this)...
をまとめて記述する方法ってないのでしょうか?
thisがあると別個でなければ駄目とかなんですかね? >>615
しつこい。こっちに答え書いてあるだろ
+ JavaScript の質問用スレッド vol.129 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1456242505/681-682 >>610ではないが「持ってきたデータを変数に代入しておいて使ったら?」がなんでスルーされてるかわからん
データが膨大でできないとか? ■ このスレッドは過去ログ倉庫に格納されています