■ このスレッドは過去ログ倉庫に格納されています
jQuery ライブラリ 総合質問所 vol.4
- 1 :Name_Not_Found:2014/05/17(土) 17:00:26.40 ID:???.net
- jQuery および jQuery UI ライブラリの使い方や、
jQueryプラグインの作り方を質問するスレッドです。
こんなプラグインありませんか?と聞くスレではありません。
jQueryを使って作る側の質問スレです。
探すのは自分で探してください。ろくにサポートもされてなさそうな
野良プラグインの使用はおすすめしません。
前スレ
【jQuery】JavaScript ライブラリ総合質問所 vol.3
http://toro.2ch.net/test/read.cgi/hp/1369444026/
jQuery以外の話題はこちらへ
+ JavaScript の質問用スレッド vol.115 +
http://toro.2ch.net/test/read.cgi/hp/1399072595/
- 937 :Name_Not_Found:2015/12/22(火) 23:47:37.01 ID:pBUWf4Ut.net
- 出力結果のイメージを書け
- 938 :Name_Not_Found:2015/12/22(火) 23:48:19.45 ID:pBUWf4Ut.net
- あと「どうやりますっけ?」じゃねえよアホ
知ってたけど忘れましたみたいな言い方すんな
- 939 :Name_Not_Found:2015/12/22(火) 23:53:52.23 ID:???.net
- >>936
$("#h").html($("a").map(function() {
return this.href;
}).get().join("<br>"));
- 940 :936:2015/12/23(水) 00:12:13.75 ID:???.net
- >>938
すいませんすいませんすいません
>>939
うおすげ簡潔。
ありがとうございます!!!!!
- 941 :Name_Not_Found:2015/12/23(水) 00:15:06.76 ID:???.net
- (jQueryプラグインを作る時以外)eachを使ったら負けだと思え
- 942 :Name_Not_Found:2015/12/23(水) 00:20:00.05 ID:???.net
- >>941
それはなぜですか?
便利なのでよく使ってしまうんですが
- 943 :Name_Not_Found:2015/12/23(水) 00:24:56.28 ID:???.net
- ちなみに最新ブラウザのアロー関数を使ったらこうな
$("#h").html($("a").map((i, e) => e.href).get().join("<br>"));
- 944 :Name_Not_Found:2015/12/23(水) 00:33:35.58 ID:???.net
- >>942
jQueryは、要素を一つづつ操作するライブラリではなく、
「CSSセレクタにマッチした0個以上の要素の塊」に対して操作するライブラリだから。
jQueryが関数型風ライブラリと言われる理由の一つでも有る。
eachを使うと要素を一つづつ操作することになる。
それはjQueryの本来の考え方に合っていない。
これはCSSの考え方にも適合している。
CSSはセレクタにマッチした要素に対して装飾を行うもの。
1つずつ操作をするという手続き型的なやり方はしない。
jQueryプラグインが例外なのは、そもそもプラグインというのは
素のJavaScriptを使ってjQuery風なメソッドを作るものだから仕方がない。
- 945 :Name_Not_Found:2015/12/23(水) 01:19:03.09 ID:???.net
- >>944
なるほどjQueryの考え方からすると本筋ではないということですか
本筋から逸れたやり方をすることで
処理速度やコードの可読性が低下したりといった実害はありますか?
また、セレクタでピックアップした要素のひとつひとつに
操作を施したい場合、よりよい方法とはどんなものでしょう?
- 946 :Name_Not_Found:2015/12/23(水) 01:23:57.95 ID:???.net
- > 処理速度やコードの可読性が低下したりといった実害はありますか?
「うおすげ簡潔」が答えだろう。jQueryのやり方だと簡潔になる。
> また、セレクタでピックアップした要素のひとつひとつに
> 操作を施したい場合、よりよい方法とはどんなものでしょう?
eachを使わない。
- 947 :Name_Not_Found:2015/12/23(水) 01:36:17.89 ID:???.net
- 実害はないということですか
それどころか簡潔な記述にできると
eachを使わない場合forループをまわすか
そもそもループを必要としない処理方法を考えるかですね
(上のmapの例のように)
しかし私の理解不足もあるのかもしれませんが
今後も気軽にeachを使いつづけてしまいそうな気がします・・・
- 948 :Name_Not_Found:2015/12/23(水) 01:39:19.31 ID:???.net
- すみません、書き込んだあとに気が付きましたが
>>946を読み誤って逆の解釈をしてました
よろしければeachを使わない簡潔な記述の例を教えてください
- 949 :Name_Not_Found:2015/12/23(水) 01:47:38.08 ID:???.net
- eachを使わなけれいいだけだろう。
例?
$('a').hide()
はい。おしまい
- 950 :Name_Not_Found:2015/12/23(水) 02:03:11.22 ID:???.net
- 俺も気にせずふつうに使ってるがダメなのか?
>>949は参考にならんし・・・
- 951 :Name_Not_Found:2015/12/23(水) 03:37:13.99 ID:???.net
- >>926
jQueryのイベントバブリングと、
「return false;」「e.stopPropagation();」「e.preventDefault();」について
ttp://blog.neo.jp/dnblog/index.php?module=Blog&action=Entry&blog=pg&entry=3107&rand=ef81c
return true; にしたら、親要素へイベントが伝わるのでは?
- 952 :Name_Not_Found:2015/12/23(水) 14:21:22.49 ID:???.net
- Windows7,8,10でDesktopのwidthとheightを取りたいのですが、
Startボタンがあるツールバーの部分は除いた大きさを取れますか?
- 953 :Name_Not_Found:2015/12/23(水) 15:13:05.26 ID:???.net
- 無理。そもそもブラウザの外の情報は取れないと考えるべき
- 954 :Name_Not_Found:2015/12/23(水) 16:20:16.20 ID:???.net
- >>953
横からすまん。
screen.Height/screen.widthではダメなの?
- 955 :Name_Not_Found:2015/12/23(水) 16:23:55.06 ID:???.net
- >>954
それでいいよ
- 956 :Name_Not_Found:2015/12/23(水) 17:04:33.70 ID:???.net
- >>952
つ screen.availHeight
- 957 :Name_Not_Found:2015/12/23(水) 17:06:59.39 ID:???.net
- >>956
ありがとうございました
- 958 :Name_Not_Found:2015/12/23(水) 18:36:58.81 ID:???.net
- >>951
レスありがとうございました。
trueでもだめでした。
- 959 :Name_Not_Found:2015/12/23(水) 20:49:32.23 ID:???.net
- <input type="radio" name="name1" id="radio_id_10" /><label for="radio_id_10">text10</label>
<input type="radio" name="name1" id="radio_id_11" /><label for="radio_id_11">text11</label>
<input type="radio" name="name1" id="radio_id_12" /><label for="radio_id_12">text12</label>
_ _
<input type="radio" name="name2" id="radio_id_20" /><label for="radio_id_20">text20</label>
<input type="radio" name="name2" id="radio_id_21" /><label for="radio_id_21">text21</label>
例えば、こういう時に、idとそのlabelの文字を以下のように配列に取り出したいのですが、
[
[
{id: "radio_id_10", label:"text10"},
{id: "radio_id_11", label:"text11"},
{id: "radio_id_12", label:"text12"}
],
[
{id: "radio_id_20", label:"text20"},
{id: "radio_id_21", label:"text21"}
]
]
forループを使う方法でゴチャゴチャ書けば出来そうなのですが、jQueryっぽくスマートに一行で書く方法を教えて下さい。
- 960 :Name_Not_Found:2015/12/24(木) 23:45:42.41 ID:???.net
- jquery uiで作ったdialogは親ウィンドウの範囲外に出られないですが、どうにかして外に出す方法はありますか?
- 961 :Name_Not_Found:2015/12/25(金) 02:02:42.65 ID:???.net
- >>959
この前のやつか? まずは自分で考えろ。
あとjQueryは一行で書くものとか俺は言ってないからな。
- 962 :Name_Not_Found:2015/12/25(金) 02:09:23.87 ID:???.net
- >>959
まあ可哀想だからヒントをやろうw
var names = ・・・
function foo(i, el) {・・・}
var ret = $.map(names, function(name) {
return [$('[name="' + name + '"]').map(foo).get()];
});
console.log(JSON.stringify(ret, null, 2))
- 963 :Name_Not_Found:2015/12/25(金) 03:03:32.12 ID:???.net
- >>962
ちなみに
その質問者はこないだ回答もらた俺じゃないよ。
- 964 :Name_Not_Found:2015/12/25(金) 03:07:01.51 ID:???.net
- 親戚の息子は親の敷地の範囲外に出られないですが、どうにかして外に出す方法ありますか?
- 965 :Name_Not_Found:2015/12/25(金) 08:35:06.51 ID:???.net
- >>962
偉そうに言うくせに一行で書けないのかよ。使えない奴だ
- 966 :Name_Not_Found:2015/12/25(金) 08:49:21.92 ID:???.net
- >>965
横に長くなってもいいなら一行で書けるぞ?
var ret = $.map(・・・<namesの中身>・・・, function(name) { return [$('[name="' + name + '"]').map(・・・<fooの中身>・・・).get()]; });
処理が多くなれば、それだけコードは増えるのは当然なわけで
見づらくなるだけなんだが。
- 967 :Name_Not_Found:2015/12/25(金) 08:55:13.59 ID:???.net
- 初心者は一行で書くことが偉いとか思ってるからな(笑)
- 968 :Name_Not_Found:2015/12/25(金) 10:43:11.55 ID:???.net
- >>960
同じような質問以前出てたような
- 969 :Name_Not_Found:2015/12/25(金) 10:55:54.94 ID:???.net
- >>968
出来るのかどうか思い出せよ
- 970 :Name_Not_Found:2015/12/25(金) 15:44:49.06 ID:???.net
- 出来ません!
- 971 :Name_Not_Found:2015/12/25(金) 22:21:07.98 ID:???.net
- >>969
>>970
出来るだろ、上くらい見なよ
- 972 :Name_Not_Found:2015/12/25(金) 23:50:36.17 ID:???.net
- >>971
出来ないだろ。
上の方法では確かに移動範囲が広がるが、それはdialogが親ウインドウの枠で
制限されなくなるが、はみ出した部分は表示されない。
>>960 がやりたいのは、親ウインドウの外に自由に移動したいんだろ。
それは無理。
- 973 :Name_Not_Found:2015/12/26(土) 00:22:01.34 ID:???.net
- uguiならマスク外すだけでは
- 974 :Name_Not_Found:2015/12/26(土) 00:23:30.75 ID:???.net
- ごめん>>973はぼけてて別スレと勘違いしてた
スルーで
- 975 :Name_Not_Found:2015/12/27(日) 23:35:40.94 ID:???.net
- $(this)はどう言う意味になりますか?
- 976 :Name_Not_Found:2015/12/28(月) 03:07:38.88 ID:???.net
- thisが何を指してるかによって意味が変るんじゃないかな
- 977 :Name_Not_Found:2015/12/28(月) 15:17:12.46 ID:???.net
- JSのthisは、文脈でコロコロ変わるから、ややこしいことで有名
thisの使い方を、調べた方がいい
- 978 :Name_Not_Found:2015/12/28(月) 18:39:50.13 ID:???.net
- まあでもイベントハンドラ内かなとは思うけど…様子見
- 979 :Name_Not_Found:2015/12/30(水) 05:10:15.47 ID:???.net
- >>975
「それ」もしくは「その要素」
「コップ」を持ってきてください。
そして「それ」に水を入れてください。
- 980 :Name_Not_Found:2015/12/30(水) 10:59:48.46 ID:???.net
- DOMの要素に対してならjQueryの各種の操作が出来ますが、
$.get("page1.html", function(data) {..})
でdataに読み込んだpage1.htmlに対して同じような操作をしたいのですが無理ですか?
例えばpage1.htmlの中にある button だけを取り出したいとか。
あるいはidを指定して検索して、その属性を取り出すとか。
- 981 :Name_Not_Found:2015/12/30(水) 14:40:42.47 ID:???.net
- $(html).findとかでできるだろ
- 982 :Name_Not_Found:2015/12/30(水) 16:43:20.26 ID:???.net
- >>981
ヒントありがとうございました。
findでは出来なかったのですが、filterで出来ました。
でもfindとfilterの違いが分かりません。
- 983 :Name_Not_Found:2015/12/30(水) 17:05:45.08 ID:???.net
- findみつける
filter見つけたものを絞り込む
- 984 :Name_Not_Found:2015/12/31(木) 11:00:03.73 ID:???.net
- $(document).ready の中で
$.getScript('xxx.js')
を実行した場合、それが完了するタイミングと、
$(window).load
が実行されるタイミングの関係はどうなります?
少し試したら、
xxx.jsの実行が終わってから $(window).loadが実行されるようなのですが、
そういう保証はありますか?
つまり、xxx.jsの中で
var a=1;
が有った時にaを$(window).load以降で利用したいのですが。
- 985 :Name_Not_Found:2015/12/31(木) 13:00:58.51 ID:???.net
- > そういう保証はありますか?
ない
モジュールの依存関係の話なら
RequireJSやWebPackを使え
- 986 :Name_Not_Found:2015/12/31(木) 13:25:46.10 ID:???.net
- 質問ですがお願いします。
ページ末付近のボタンをクリックして、あるライブラリを実行させます。
<button id="syori">処理1</button>
$('#syori').click(function(){ ライブラリなど });
正常動作後ページ頭に一瞬で移動してしまいます。
ライブラリなしでしたら飛ばずにその画面位置を保ちます。
いくつかのブラザでも同じ挙動をします。
ボタンではなくaタグである場所に移動させると
一瞬#anへ飛んで一瞬でページ頭に戻ってしまいます。
<p id="syori"><a href="#an">処理1</a></p>
そこでfunction内だけ、ページ頭へ移動せず、または#anに留まるような
処置はどうしたらいいでしょうか?
総レス数 986
309 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★