jQuery 質問スレッド vol.7 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
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/ >>842
>>776?
唯一答えてるのは776だけだが >>853
頼むからそいつを刺激しないでくれ
餌を与えれば、誰にでも食いついてくる輩だぞ >>852
不必要とはどういうこと?案件によるし君がこの件の何を知ってると?
そんなに特異な条件ではないぞ たぶんお問い合わせフォームかその延長くらいしか手がけたことなくて想定できないのでは >>853
フォームを使わない派の人?
であればリロードしたときや進む・戻るを
押した時にフォームの値と画面がずれる件を
どう対処してるか聞きたいんだけど >>857
俺が言いたいのはそこなんだよね。
みなさん、そこまで考えたことありますか?ってこと
確かに少しぐらいフォームと見た目がずれていても
ブラウザのせいですとか言って逃げるのもありだし、
キャッシュを強制的に破棄してリセットするのもありだろう。
仕事は時間が有限に有るわけじゃないから手抜きするのも
ありなんだけど、それはそれとしてブラウザの挙動をちゃんと
理解して最善の方法も提案できないとダメだと思う。
それができないと小規模なコードしか書いたことがないように見えてしまうよ フォームを使わない「派」?
<form>は使ってるよ
ずれは案件による。大雑把に言うと
・単純なものはブラウザまかせ
・図形など複雑なのは初期化(クッキーが関係してくる場合もあるので)
いずれにしろ必要なときに正確に取得することには注意してる
当たり前だが >>859
図形とフォームが結びつかないんだけどどういうこと?
ドローツールみたいな物の話をしてる? 加えて書くと、<form>を使うか、使わず部品だけ使って即座に反映させるかは時と場合による
ユーザ目線での使いやすさ、他の部分及び全体との統一性、仕様、引継ぎなら元の状態などなど
書いててばかばかしくなる >>861
ユーザー目線での使いやすさやそこに書いてある理由は
フォームを使わない理由にはならないよ。
例えば、日付入力のinput要素があったとして
最近のブラウザはHTML5のリッチなインターフェースを
出すようになったけど古いブラウザでテキスト入力になるから
ユーザー目線で使いやすように独自で作ろうとなったとする。
だけどこれはフォームを使わない理由にはならないのはわかるよね?
Bootstrap Datepickerとかを使ったことが有る人ならわかると思うけど
textタイプのinput要素がリッチな日付選択フォームに化けるんだよ
この発想の応用で「ユーザーが何かしらの値を入力するもの」は
全てフォームのinput要素で実現できる。
(もちろんinput要素を使いやすいインターフェースに化けさせるわけだけど)
たしかに使いやすさのためにフォームが適切じゃないのはあるだろうけど
ドローツールみたいな具体的な利用例を書いてくれてないので、説得力がないんだよ。 たしかに案件による。殆どの案件はフォームで良い
フォームが適切じゃない案件はほとんどない。
探せば有るだろうけどぱっと思いつかないぐらい。
という意味で案件による。 「案件による」っていうのは反論ではない。
何が食べたい?なんでもいい。これと同じぐらい意味がない答
だからそんなにムキにならなくていい。 いやそれはそうなんだけど、せっかくレスするなら
自分の意見を言ってくれと >>862
>説得力がないんだよ。
別にいいよ、そんなつもりないから
>>857にレスしただけだ
クライアントでもないお前さんにあれこれ言われる筋合いはないし、
うちのやり方なんてどうでもいいだろ? 割り込み失礼。
>>849の1つの要素(オブジェクト)に、>>852の不必要なものって何でしょう?
タグ何か余分? > うちのやり方なんてどうでもいいだろ?
あなたのやり方はどうですか?
という質問に対して、
うちのやり方なんてどうでもいいだろ
は、なんのために答えたんですか?レベルなんだけどw
正解が有る問題だと思ってるのかな?
正解がない問題は、あなた(だれか)のやり方を
聞くしか無いでしょうに。 >>871
客にどちらが良いと思う?という質問された時に
場合によるなんて言っていたら仕事無くすよ?
場合によるならば、○○の場合はこうで
××の場合はこうです。という答え方をしなきゃ
質問している方だって「場合による」っていうのは
分かって専門化の判断基準っていうのを聞いてるんだよ。 >>870
↑うざーーーーーーー
絡まないほうがいいよ つか、なんで新人に対しての顧客対応の
やり方みたいなのを説明しなきゃならんのだよw >>872
↑もっとうざーーーーーーー
自分が客だとでも いや「場合による」で答えたつもりになってるのは
恥ずかしいなぁって話だよ。 >>873
871が読めないらしい
もうスレ違いになってきてるしな >>877
そういう話なら、>>871にレスしている
>>872を読むべきでは? jqueryスレッドがあったのでこちらに書かせてください。
fancybox3のサイトの記述通りにパーツを落とさないでリンクを貼るだけのやりかたで
fancyboxを動かしています。
この場合はオプションが追加可能な下記スクリプトで
<script type="text/javascript">
$("[data-fancybox]").fancybox({
オプション
});
全画面中の透明なし、背景色の指定、枠線追加等はできないでしょうか?
やはりcssとjsファイルを落として自分で書き換えないと無理でしょうか?
どなた教えてください。 分析解析などの分野でOK/キャンセルボタンがない場合がある。
resetもあるわけがない。(事前確認によるその類はあるが。)
よってformが不要なことはある。 OK/キャンセル/resetボタンがないから
formがいらないっていうのは短絡的だな
input要素を一塊にして扱うならば、
formにしておくことで、JavaScriptから
一括でデータを読み込んだりキャンセルできる 短絡的な発想ついでに言っておくと、
submitボタンがないからといって、
Ajaxを使わなければいけないってことにはならない。
formにしておけばsubmitメソッドが使えるからだ だろ、その分野を知らない>>881
そこはclickだろ submitがいらないっつーのに「submitが使えるからだ」て >>884
よく読め
OK/キャンセル「ボタンがない」場合だ
ボタンがないだけでsubmitしないとは書いていない それをいうならば
「書いていないからしない」
も思い込みなわけで JavaScript飛ばしてjquery勉強するやつなんなの?
業界未経験者採用してる会社って、新人にどういう順番で教えてる? とりあえずの戦力と言うことで…
使い捨てじゃないの?
大事に育てたいならJavaScriptは必要だね。
あと、とっかかりとしてjQなのかもよ。
いずれは内部の事も知らないといけないけど、
まずは何でもいいからねーって。 >>865
例えば人員の表で、男のみや女のみの絞込み、ID順に並び替えなど、
よほど処理時間かからない限りOKボタンなど配置しない
よくあるケースで今までもたぶん目にしてると思うよ
気にして見てる人は少ないだろうけど
あと君に言うわけではないが「フォームが適切じゃない」と>>862さんが書いてるが誰もそんなこと書いてないかと
なくてもよくね?の類は見られるが >>895
それはぱっと思いついた話だけど、、一歩ずつ考えていこうか?
まず、表全体のデータがクライアントにあるとしよう
(サーバー側にあっても同じことなんだがとりあえず)
絞込などの条件は、場合によっては1つしか無いって場合も有るだろうけど、
どちらかと言えば1つしか無いのは例外で、絞込項目は複数あって
並び替え機能もあるとしよう。
そうすると変更した項目だけからでは、表データを作ることはできない。
なぜなら、性別での絞込 + 年齢での絞込 + ID順 といった情報が
すべて揃ってないと表示する一覧は組み立てられない
そうすると必然的に複数の条件は「人員の表を出すために必要な条件」と
してグループ化考えることができるわけよ。
ボタンがなくて即時反映したとしても概念的なグループが存在する。
そのグループをフォームとして考えればいいわけ。
---- ここまではフォームとして作るのが自然でしょ?っていう話。以下はJavaScript側のメリット ----
グループをフォームとして作っておけばこれはJavaScript的にも便利なことがあって、
フォームデータをシリアライズするライブラリを使ったり作ったりすると、
条件オブジェクトとして{gender: 'man', age: 20, order_by: 'id'} みたいな
ハッシュを生成するのが簡単になる。
こういうライブラリは汎用的なライブラリとして作れるのでテストもしやすい。
そして全体のデータを、これらの条件オブジェクトを使って、フィルタするようなものを作る。
DOM操作が不要でこれも汎用的なライブラリにできるだろうからテストしやすくなる
最後に表示すべき表データからDOMを生成して完成。 >>897
divはデザインのために使うものだから
input要素をまとめるのには適していない
例えばこんなのとかnameが一緒でも
別々のものとして扱ってくれるし
<form id="form1">
<input type="radio" name="a">
<input type="radio" name="a">
<input type="radio" name="a">
</form>
<form id="form2">
<input type="radio" name="a">
<input type="radio" name="a">
<input type="radio" name="a">
</form>
名前空間みたいなもんだよ。グローバルに置くよりも
form配下においておけばメンテナンス性もよくなる 名前空間は変数のバッティングを防ぐためで当てはまらない
メンテナンス性向上はあるがHTMLに関しては必要なければ余計な囲いはないほうがいい
<p>や<ul>にクラス付ければ済むのにわざわざ<div>つけることはない
便利なのはわかるが今回それでなくてはならない理由がないんだな
使うか否かは記事の内容や本人次第だろう
押し付けがましいにもほどがある 上とは全く別件です
フォーム(#fm)の中にリセットボタン(#rst)を設置
Windowを閉じる前に確認
$('#rst').click(function(){$('#fm').reset();});
$(window).on('beforeunload',function(){return '終わるよ';});
#rstでも終わるよダイアログがでてしまうのですがどこがいけないのでしょうか? >>900
押し付けてないよ?
事実としてグループととして扱えるように
form要素で囲んでおくとのが良いってだけ
form要素で囲んでおくとメリットは有るが
デメリットはない >$(window).on('beforeunload',function(){return '終わるよ';});
$(window)
ここには普通、セレクターが入る
$('#fm')
とか 「js event bubbling」で検索!
DOM イベントのバブリング。
子要素から、親要素の方向へ、イベントが伝播されていく
event.stopPropagation
イベント伝播を止める >>900
> 必要なければ余計な囲いはないほうがいい
それ大事
引継ぎで何か意味あるのかと無駄な手間が減る jqplotで凡例の項目の一部をデフォルトfalseにしたいのですが
どのようにすればできるでしょうか?
例えば以下のサンプルサイト様の凡例「花子」を
初期起動時にはデフォルトでfalseにするイメージです
http://alphasis.info/2012/04/jquery-plugin-jqplot-line_charts-legend-numberrows/
よろしくお願いします Windowを閉じる前に確認、とは親Window=ブラウザです
>>904
具体的にお願いできないでしょうか
$('#rst').click(function(e){e.stopPropagation()});
でも同じでした >>905
それは別に大した問題じゃないかな。
一連のフォーム要素があることに対するパラメータ群であれば
formで囲えるだけじゃなくて名前もつけられる。
例えばsearch_paramsとかcustomer_infoとかね
そうするとこれは検索条件の名前なんだ、顧客の名前なんだと
意図が明確になる >>908
もっと簡単な例で、質問してくれ
何を言っているのか、さっぱり分からない >>908
こうかな?
$('#rst').click(function(e){e.preventDefault(); e.stopPropagation(); $('#fm')[0].reset();}); >>911
完璧です!邪魔だったクエリまで消えてくれて
ありがとうございます 珍しくスレ伸びてると見たらdiv厨ならぬform厨が張り付いてたのか
こんだけ拘っておいて押し付けてないってどんな神経なんだ 押し付けてないよ?
どうするのが良いかの話をしているだけであって
悪い方を選ぶのは自由だから >>916
満足とかそういう問題じゃなくて
単にあるべき姿を言ってるだけ 今回はreset()は使わないですしformは不要なので使わずにやります。
みなさんどうもでした。 白々しいw
わざわざ>>751のふりして、悪いやり方をしますって
宣言するとか、やるだけ無駄だってわからんの?w >>917
あるべきという言葉はそれ以外を否定しているわけで結局のところ押し付けの婉曲表現です
なぜならそのあるべきから外れることは「間違いである」と言っているのと等価ですので
better to beではなくshould beまたはmust be(場合によってはshall be)ならね >>920
http://ejje.weblio.jp/content/%E3%81%82%E3%82%8B%E3%81%B9%E3%81%8D%E5%A7%BF
あるべき姿の英語
主な英訳
ideal form; ideal state
私のあるべき姿
what I should be
英語の「must」「have to」「should」の基本的な使い分け方
https://eikaiwa.weblio.jp/column/phrases/natural_english/difference_must_should_have_to
「should」は助言や提案を表す
「should」は「〜したほうがよい」というニュアンスの助動詞です。助言や提案をするときに使われるため、
「must」や「have to」に比べて強いニュアンスはありません。 >>921
should=〜した方がいい は日本の英語教育の害悪の一つ しなければならない ・・・ must
するべきである・・・ should
ある(する)べきなんだから、それ以外を否定しているわけじゃない >>925
日本語の勉強した方がいいんじゃないか?
「〜するべき」と言われていることに反した行動をとった人がいたら普通眉をひそめるだろ?
それってどういうことか考えてみなよ >>919
いえ、本人です。
もちろん普通のお問い合わせフォームでは使ってますよ。 証拠?
つーかくだらん書き込みでクソスレ化が進んでるな >>926
日本語というより RFC2119 的な主張がされている気がしないでもない
歪曲表現を好む日本人には受け入れがたいだろうが… 基本的なことで質問です。
jsfiddleなどのサイトでなくテキストにして幾つかのブラウザ(ie9など)で。
画面の戻る進むや再読込すると、チェック状態と結果が違う場合があります。
チェック状態なのに四角だったり。
セレクトボックスやラジオでも同様なことが起こります。
どう対処してますか? 例えば
#zi {
font-size: 12px;
text-align: center;
width: 20px;
height: 20px;
border-width: 2px;
border-style: solid;
}
.ccl {
border-radius: 50%;
}
<p><label><input type="checkbox" id="chk">○にする</label></p>
<p id="zi">あ</p>
$(function(){
$('#chk').click(function(){
if($(this).prop('checked')){
$('#zi').addClass('ccl');
}else{
$('#zi').removeClass('ccl');
}
});
}); 訂正です。
誤:幾つかのブラウザ(ie9など)で。
正:幾つかのブラウザ(ie9など)で試してもらえれば現象確認できると思います。 ちょっと見づらいからリファクタリングな
#zi {
font-size: 12px;
text-align: center;
width: 20px;
height: 20px;
border-width: 2px;
border-style: solid;
}
.ccl {
border-radius: 50%;
}
<p><label><input type="checkbox" id="chk">○にする</label></p>
<p id="zi">あ</p>
$(function(){
$('#chk').click(function(){
$('#zi').toggleClass('ccl', $(this).prop('checked'));
});
}); んで、この話はWeb製作板でこの間やったな。
input要素に状態を記録しろと。同じ話でいいならやるけど? Web製作板で論破されて悔しいからこっちで仕切り直ししたいのかなーって思った。
結論としては
楽な方法としてinput要素に状態を保存してCSSで制御する
面倒な方法として、ページ表示時にフォームの値とページの同期をとる
この2つだったよ。 あ、ごめん。ここWeb制作板だったw
いや、この話はこれで終わりでいいよ。
結論は出てるし、誰もレスしなかっただろ? ブラウザが状態を、キャッシュしているのかな?
そのキャッシュが整合性が取れていないのかも
キャッシュをクリアすれば? FOX52でやってみたがそうなるな
キャッシュってphpのsession_cache_limiterみたいなキャッシュ制御? 読み込み時は全ての:checkedを得て再設定するとか
遷移はどうなんだろ ブラウザの戻るボタンなんて、ブラウザ毎に、動作が異なるだろ。
各ブラウザのキャッシュ機能を予測するのは、無理だろ
ユーザーが、x ボタンを押してから、y ボタンを押した、という動作をした場合、
ブラウザによっては、x のJS を実行せずに、y のJS だけを実行するかも知れない
もし動作を省略された、x の状態に、y が依存していれば、不整合を起こす
こういう可能性が無限に考えられるから、
とにかく、キャッシュをすべてクリアして、初期化した状態から始めるべき
各ブラウザの動作などは、予測できない 何を予測するんだ?
キャッシュは残る or 残らない の
二通りしか無いだろw
そもそもキャッシュはユーザーにとって
快適になるからブラウザは搭載しているのであって
それを無効にするのは馬鹿げてる >キャッシュをすべてクリアして、初期化した状態から始めるべき
後者はHTMLの値またはjsの定数や変数から始められるが
前者は何を指しているのかわからん
まさか手動でクリアせよと? ブラウザが、キャッシュを使って復元する際、
どのようにJS を実行するか、予測できない
ユーザーが、x ボタンを押してから、y ボタンを押した、という動作をした場合、
ブラウザによっては、x のJS を実行せずに、y のJS だけを実行するかも知れない
本来なら、f(x), f(y) と同じ関数を、この順番で2回実行しなければならないけど、
同じ関数の場合、最後のf(y)だけを、実行するかもしれない
ブラウザは、同じイベントハンドラーを、
呼ばれた回数だけ、正しい順番で、すべて記憶して復元しないだろ。
最後の引数しか、キャッシュしていないかも知れない
だから、この場合、省略されたf(x)の方に、重要な情報があった場合に、
不整合を起こすのではないか?
他にも、そもそも、JS を実行しないブラウザもあるかもしれない。
この場合は、最後の状態だけを持っていて、それを復元する
とにかく、各ブラウザの挙動は、予測できない レス数が950を超えています。1000を超えると書き込みができなくなります。