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/
0084Name_Not_Found
垢版 |
2016/12/06(火) 16:35:14.70ID:???
>>83
function addEvent(){
$('#menu a').off('click') // 重複するのでeventをoff
if ($(window).width() <= 700) {
$('#menu a').on('click', function() {
...
ごめん間違ってたので一部訂正w
0085Name_Not_Found
垢版 |
2016/12/06(火) 16:39:25.35ID:???
>>78
既存メニューの非表示は element.style.display === 'none' な要素ノードを探して hide()
しかし、classを付け外しする方が Selectors API で探せるし、現実的だと思うんだがな…
勿論、aria-hiddenやaria-checkedでもいい
0086Name_Not_Found
垢版 |
2016/12/06(火) 16:58:41.57ID:???
>>83,84で78の問題は解決したのですが、代わりにメニューをクリックしたときのスムーズスクロールが動作しなくなってしまいました…。
$(function(){
$('a[href^=#]').click(function() {
var speed = 400;
var href= $(this).attr("href");
var target = $(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top - 50;
$('body,html').animate({scrollTop:position}, speed, 'swing');
return false;
});

});
0090Name_Not_Found
垢版 |
2016/12/06(火) 18:00:15.95ID:???
>>86
そのイベントも$('#menu a').off('click')で削除されているので
#toggle. click()を関数にしてaddToggleのみ削除するようにする

function addToggle() {
return $('#toggle').click();
}

$('#menu a').off('click', addToggle); // addToggleのみ一旦削除
$('#menu a').on('click', addToggle) ; // 真の時のみaddToggleを追加
0091Name_Not_Found
垢版 |
2016/12/06(火) 18:21:21.30ID:???
>>89
https://jsfiddle.net/qo688u62/
初めて使ったので上手くできてるか分かりませんが…。78にあたる部分は記述してない状態です。

>>90
すみません、超初心者なのであまり理解できませんでしたorz
0094Name_Not_Found
垢版 |
2016/12/06(火) 23:21:34.58ID:???
>>64-65
2chのバグだろう

書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" の代わりに、\" とエスケープすれば、どうだろう?

それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった
0095Name_Not_Found
垢版 |
2016/12/06(火) 23:51:50.66ID:???
>>92
なかなかいいね。いつも通り指摘してやろうと思ったけど、
細かい指摘点しか思い浮かばなかった。
0096Name_Not_Found
垢版 |
2016/12/07(水) 13:46:58.59ID:???
誰も口だけ番長のアドバイスに耳を貸さないから黙っているといいよ
0097Name_Not_Found
垢版 |
2016/12/07(水) 15:26:41.53ID:???
>>92 >>93
ありがとうございます!無事解決しました!
他の方々もありがとうございました!
0098Name_Not_Found
垢版 |
2016/12/15(木) 08:17:40.47ID:???
すみません、おしえていただけないでしょうか。
ajaxで以下の通りコーディングしようとしているのですが、
****のところに、他の関数で取得した値を入れたいと考えいます。
****に直接その関数を記述することはできるのでしょうか。

  $.ajax({
  url:
0099Name_Not_Found
垢版 |
2016/12/15(木) 08:17:58.89ID:???
すみません、きれてしまいました

すみません、おしえていただけないでしょうか。
ajaxで以下の通りコーディングしようとしているのですが、
****のところに、他の関数で取得した値を入れたいと考えいます。
****に直接その関数を記述することはできるのでしょうか。

  $.ajax({
  url: "Servlet",
  type: "POST",
  dataType: "text",
  data: {content: ****},
  success: function(data) {
0100Name_Not_Found
垢版 |
2016/12/15(木) 09:07:47.06ID:???
Objectdから普通にできるよ
data: {content: (function() {})()},
0101Name_Not_Found
垢版 |
2016/12/15(木) 10:13:13.88ID:???
さっそくありがとうございます!
やってみます!
0102Name_Not_Found
垢版 |
2016/12/15(木) 12:42:08.25ID:???
申し訳ありません、質問のコードに誤りがありました。
正しくは、data: ****,でした。
試しに文字列を返す関数を設定して以下のようにやってみたのですが、
dataに'hoge'が設定されません。
どこか記述に誤りがあるのでしょうか。

  $.ajax({
  url: "Servlet",
  type: "POST",
  dataType: "text",
  data: $(function() {return 'hoge' ;}),
  success: function(data) {
0103Name_Not_Found
垢版 |
2016/12/15(木) 12:45:38.92ID:???
data: (function() {return 'hoge' ;})(),
0104Name_Not_Found
垢版 |
2016/12/15(木) 12:51:12.65ID:???
data: {
hoge: (function() {
return 'hoge' ;
})()
},
下記と同じ
function hoge() {
return 'hoge' ;
}
data: {
hoge: hoge()
},
0106Name_Not_Found
垢版 |
2016/12/15(木) 23:24:12.32ID:???
>>104
ありがとうございました。できました。

>>105
dataにはservletに送信するデータが入るという認識でした。
実際にservletをデバッグで止めたら値が引き継がれていました。
success:内のdataはservletから出力される値が設定されると
思っておりましたが、誤っていますでしょうか。
0109Name_Not_Found
垢版 |
2016/12/16(金) 12:34:44.51ID:???
>>107ありがとうございます。
 教えていただいたやり方で組み入れたところ、
 無事dataにhogeをいれることができました!
 ありがとうございました!
 応用して、別の関数なのですが自身のidをcontent項目に設定させたいと思い、
 以下のようにやったのですが、$(this).attr('id')でidを取得することができませんでした。
 XXXは個別にDLしたプラグインの関数なのですが、そもそもの考え方として、
 XXXが何であれ、「$("#table [id = '100']").XXX({」でidを
 使っていることから、その下の「$(this).attr('id')」で
 取得できるのではないかと思ったのですが、やはりXXXで処理している内容と関係があるのでしょうか。
 あるいはただ単に取得の仕方が誤っているだけなのでしょうか。
0110Name_Not_Found
垢版 |
2016/12/16(金) 12:37:21.02ID:???
>>109です
すみません、なぜか「postメソッドをつかってください」というエラーがでてコードを書きこめません。。。
0111Name_Not_Found
垢版 |
2016/12/16(金) 14:52:44.31ID:???
そのthisが何を指しているか調べてみたら?
0112Name_Not_Found
垢版 |
2016/12/16(金) 16:18:07.25ID:???
>>109
$(this).attr('id')で参照している直下で
console.log(this);で何がthisなのかを調べたら解決すると思うよ
不明な場合はlogを吐かすこと
0114Name_Not_Found
垢版 |
2016/12/18(日) 12:39:44.58ID:kDK4nXjJ
>>109
this は呼び出された関数によって変わる
vall, apply, bind、コールバック関数等、関数の呼び出され方によっても変わる
jQuery#on なら event.curtentTarget に束縛されるし、jQuery.fn.pluginName ( === jQuery.prototype.pluginName ) が jQuery(selectorText).pluginName() で呼び出されるなら pluginName() 内の this 値は jQuery のインスタンスに束縛される
0115Name_Not_Found
垢版 |
2016/12/18(日) 12:46:11.98ID:???
thisってもはや一種の引数だよな
0116Name_Not_Found
垢版 |
2016/12/18(日) 12:51:51.24ID:kDK4nXjJ
>>114を訂正
× vall, apply, bind、コールバック関数等、関数の...
○ call, apply, bind、コールバック関数等、関数の...
0117Name_Not_Found
垢版 |
2016/12/18(日) 22:36:52.20ID:???
JavaScript, TypeScript の悪名高いthisは、文脈でコロコロ意味が変わる

AltJSでは、まともな Haxe を使うと天国
0118Name_Not_Found
垢版 |
2016/12/19(月) 15:44:04.21ID:???
thisはバグの元なので、使わずに済むなら使わない
0119Name_Not_Found
垢版 |
2016/12/19(月) 21:23:13.66ID:???
バグの元になるのはJavaScriptを理解してないやつだけ
っていうかjQuery使うならばthisも理解ているのが普通
0120Name_Not_Found
垢版 |
2016/12/19(月) 21:29:38.34ID:???
まぁ仕様って言い張られたら理解してないとしか言いようがないがね
0121Name_Not_Found
垢版 |
2016/12/19(月) 23:41:20.03ID:???
すみません、教えてください。表(tdのidに000〜999までふられている)に対して、以下のことをやろうとしています。
@idが0で始まる要素にマウスオーバーしたら、そのidを取得し変数jokenに格納→AServletにjokenを引き渡す→Bservletにてjokenを使用してhtmlを作成しjspに返却(HTML内にマウスオーバーしたtdのidを格納)→Chtmlをalertで表示
$(function() {
$("#table [id ^= '0']").mouseover(function(event) {
var joken = $(this).attr('id');
var html = "";
var deferred = ajax_function();
deferred.done(function() {
alert(window.hyo);
});
function ajax_function() {
var deferred = new $.Deferred();
$.ajax({
url: "Servlet",type: "POST",dataType: "text",data: {joken: joken}
}).done(function(data) {
window.hyo = data;
}).fail(function() {
console.log('fail');
}).always(function() {
console.log('ajax finish');
deferred.resolve();
});
return deferred;
}
});
});
ここでお聞きしたいのは、jokenにはマウスオーバーされたtdのidが設定されているのですが、ajaxを通じて帰ってくるdataを格納しているwindow.hyoにはマウスオーバーしたtdではなく、その直前にマウスオーバーしたtdのidが設定されています。
恐らく非同期の為だと思うのですが、マウスオーバーしたtdをwindow.hyoに確実に表示するにはどのようにしたらよいのでしょうか。
0122Name_Not_Found
垢版 |
2016/12/20(火) 08:07:34.06ID:???
ajaxがちゃんと行われていればそのコードでも大きな問題はない気がするけどなあ。
ajaxがfailの場合にはwindow.hyoはセットされず、以前にセットしたwindow.hyoが表示されるけど、それは大丈夫?
(ajaxが失敗→failが実行[doneとは違ってwindow.hyoはセットされない]→alwaysが実行→alertが表示[window.hyoがセットされていないので以前にセットしたものが表示される])

普通だったら、window.hyoを経由するのではなく、引数で直接dataを渡すほうがいい。
6~8行目
deferred.done(function(hyo) {
alert(hyo);
});
17~20行目
}).always(function(data) {
console.log('ajax finish');
deferred.resolve(data);
});
0123Name_Not_Found
垢版 |
2016/12/20(火) 17:02:00.03ID:???
>>119
オレは理解しているけど、理解していない人間も
プロジェクト内にはどうしても出てくるし
だから社内規約でthisは使用禁止だぜ
0124Name_Not_Found
垢版 |
2016/12/20(火) 23:15:11.74ID:???
>>123
横からだが、this は文脈によっては役に立つものだから一律に禁止するのは理解しがたいな
例えば、prototype上のインスタンスメソッド内なら this は有効だろう
jQuery#each のコールバック関数内の this 等、ショートコーディングの為だけに引数に代替として this を使用しているのは論外だが
0126Name_Not_Found
垢版 |
2016/12/20(火) 23:41:56.89ID:???
eachのthisはsloppy modeで仮引数と挙動が異なる結果になるから使いづらい
0128Name_Not_Found
垢版 |
2016/12/20(火) 23:52:12.14ID:???
>>123
うちはプログラミングが禁止だ。
理解していない人間がいるから
0129Name_Not_Found
垢版 |
2016/12/20(火) 23:52:33.42ID:???
インスタンスメソッドはむしろ、thisを使わないと書けない
他にもコールバック関数を指定するビルトイン関数の一部(Array.prototype.forEach等)はthis値を指定できるな
逆にjQueryの.each()はthis値を指定できなくて不便な感がある
Function.protype.bindを使えばできるが、forEachと比較すると面倒くさい
0130Name_Not_Found
垢版 |
2016/12/20(火) 23:53:41.83ID:???
>>124
jQueryのイベントハンドラのthisはよくできてると思う。
DOMのイベントハンドラと同じ仕様になっているから
以降がしやすい。
0131Name_Not_Found
垢版 |
2016/12/21(水) 00:09:36.07ID:???
>>130
イベントハンドラのthisは当時はDOM仕様になくて独自拡張だった
jQueryが普及してthisが一般的になった影響かDOM4で追従して標準化されたのが現在のthis
eventオブジェクトの互換性については良くできているが、this値については余計な事をしてくれた感があったな
0132Name_Not_Found
垢版 |
2016/12/21(水) 00:11:26.86ID:???
当時とかどうでもいいわw

今は仕様
0133Name_Not_Found
垢版 |
2016/12/21(水) 00:13:19.99ID:???
> jQueryが普及してthisが一般的になった影響か

関係ねーだろ。

互換性を高めるために仕様化しただけ
jQueryのせいにするな。
jQueryのおかげだというのなら別にいいがw
0134Name_Not_Found
垢版 |
2016/12/21(水) 00:14:52.84ID:???
イベントハンドラのthisはevent.currentTargetの代替に過ぎない
正直要らない子だな
0135Name_Not_Found
垢版 |
2016/12/21(水) 00:24:43.23ID:???

thisでいいからcurrentTargetがいらない

っていかDOMセンスないよな。
なんでよく使うものに、長い単語を割り当てるんだろうw
0136Name_Not_Found
垢版 |
2016/12/21(水) 00:28:38.13ID:???
DOM3 当時は listener オブジェクトがあるから this === event.currentTarget にしなかったのだと思う
document.addEventListener('click', {n: 1, handleEvent: function (event) { console.log(this, event.currentTarget); }}, false);
0137Name_Not_Found
垢版 |
2016/12/21(水) 00:29:28.68ID:???
thisは便利だし必要不可欠だぞ
thisをディスる奴は許さん
0138Name_Not_Found
垢版 |
2016/12/21(水) 00:32:49.63ID:???
forEachもそうなんだが、コールバック関数においてthis値は「異なるスコープから値を送り込む手段」の一つだからな
thisが予約されているとその手段が使えなくなる
0139Name_Not_Found
垢版 |
2016/12/21(水) 00:43:57.82ID:???
getelementBy〜
getelementsBy〜

考えたやつ死ね
0140Name_Not_Found
垢版 |
2016/12/21(水) 00:50:09.32ID:???
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) | Dustin Boswell, Trevor Foucher, 須藤 功平, 角 征典 |本 | 通販 | Amazon
https://www.amazon.co.jp/dp/4873115655
ショートコーディングにしか目が向いていない人にこそ読んでほしい本
0141Name_Not_Found
垢版 |
2016/12/21(水) 08:53:20.12ID:???
>>140

リーダブルとは関係ない話
長い名前をつければ読みやすいってわけじゃないんだから。
逆に冗長な名前は読みにくい。
0142Name_Not_Found
垢版 |
2016/12/21(水) 13:00:05.29ID:???
>>124
それでも原則として禁止だよ
どうしても必要なときはしょうがないけど
0143Name_Not_Found
垢版 |
2016/12/21(水) 13:30:27.90ID:???
>>142
そうすると、prototype拡張するPolyfillは利用禁止
下記コードも禁止扱いとなるが、それらのコードは使わないで運用するという事かな?

function Hoge (a, b) { this.a = a, this.b = b; }
Hoge.prototype.sum = function sum () { return this.a + this.b; };
console.log(new Hoge(1, 2).sum()); // 3

prototype系全般が利用禁止なのは不便で仕方ないと思うのだが、クロージャを使って似たような事をやっていくつもりなのか…
0144Name_Not_Found
垢版 |
2016/12/21(水) 13:39:47.97ID:???
頼むから個々のローカル・ルールを議論しないでくれよ
0145Name_Not_Found
垢版 |
2016/12/21(水) 21:13:15.82ID:???
○○禁止みたいなルールは、バカ向けのルールであって
どういう場合にでも当てはまることはほとんどないよ。

長い名前が必ずしも読みやすいとは限らないし、
短い名前が必ずしも読みやすいわけでもない。
状況によって変わるもの

バカはその状況の判断ができない。
だから何も考えなくて済む単純なルールを作る、欲しがる。

バカだから何も考えない。考えたくなーい(笑)
単純なルールを言う奴は無視しましょう
0146Name_Not_Found
垢版 |
2016/12/21(水) 23:53:30.85ID:???
Kotlin では、すべてのオブジェクトが使える、スコープを変える関数が、4つある

apply, let, run, with

with(obj){
ここでは、thisが、objに変わる
}
0147Name_Not_Found
垢版 |
2016/12/22(木) 20:29:30.43ID:???
>>143
バッチリ禁止やね

Javascript出来ます! って胸張ってる人に合わせるということは
つまりそういうことなんよ。 ルールはアホを縛るためにあるんでね
0148Name_Not_Found
垢版 |
2016/12/22(木) 21:46:43.46ID:???
アホを縛ったとしてもアホが賢くなるわけじゃない。
アホがいる限り、アホのレベルに落ちる。
0149Name_Not_Found
垢版 |
2016/12/22(木) 22:03:07.36ID:???
まあぶっちゃけ普通のサイト作成で自作コンストラクタを使う機会なんて滅多にないし、this禁止でもなんとかやって行けるか
0151Name_Not_Found
垢版 |
2016/12/22(木) 22:09:26.07ID:???
アホ禁止=自分がアホだから
0152Name_Not_Found
垢版 |
2016/12/23(金) 06:56:55.52ID:???
>>147
学習させようという気はなくて全員をアホのレベルまで落とす方向なのね
小規模コードならそれでもいいだろうけど、車輪の再発明を繰り返しそう
0153Name_Not_Found
垢版 |
2016/12/26(月) 13:14:44.97ID:???
>>152
逆だよ
大規模コードになると人数が増えるし
人数が増えればどうしたってアホが混じってくるんだよ

そんなときアホ共に車輪を再開発させないための縛りだ
0154Name_Not_Found
垢版 |
2016/12/26(月) 13:44:21.07ID:???
内輪で「これ、あれ、そこ」と同じ
理解できると速いんだけどね
0155Name_Not_Found
垢版 |
2016/12/26(月) 15:39:53.24ID:???
そしていつの日か、その会社では何語とも呼べない奇怪なやりとりが飛び交うようになっていたのである
0156Name_Not_Found
垢版 |
2016/12/27(火) 10:30:46.41ID:QoABq16V
jQueryを使ったJavaScriptのプログラムを使おうと思ったら、
Chrome系で使えない状態です。Parallaxのプログラムです。

そのプログラムは3年前に書かれたようなんですが、
作者に問い合わせたら当時は動いていたそうです。

EdgeやFirefoxでは問題なく動いています。
3年前と今ではChromium系ではJavaScriptが大きく変わったのでしょうか?
どんなところを修正すれば、治せそうでしょうか?
0157Name_Not_Found
垢版 |
2016/12/27(火) 10:38:29.15ID:???
>>156
どんなところが動かないかlogを吐かせて
調べて見たら治ると思いますよ
0158Name_Not_Found
垢版 |
2016/12/27(火) 19:18:17.41ID:???
>>156
jQuery本体、最新版を読み込んでるなら当時のものを読み込むようにする
大きいところではlive()が無くなってたりする

>>157の通り、コンソール見れば
Uncaught TypeError: $(...).aaa is not a function
こんな感じでエラーが返ってるはず
0159Name_Not_Found
垢版 |
2016/12/27(火) 23:26:09.69ID:???
Chromeの開発者ツールを起動して、デバッグすればいい
0160Name_Not_Found
垢版 |
2016/12/27(火) 23:31:26.83ID:???
EdgeやFirefoxでは問題なく動いてるっていうのならjQueryの問題じゃないだろう。
EdgeであるならChromeとそう変わらないんだからjQueryの範囲で
ブラウザ依存の問題が発生することはまずないだろう。
だからjQueryとは直接関係ない部分に問題があるとみて間違いない
0161Name_Not_Found
垢版 |
2016/12/27(火) 23:34:08.68ID:???
キャッシュでも効いてるんじゃないか
それか拡張機能と何か干渉してるか
0162Name_Not_Found
垢版 |
2016/12/27(火) 23:48:28.86ID:???
教えてください。
要素のIDを取得する場合は、
var idname = $(this).attr("id");
でできるのですが、$(this)の背景色を取得する場合はどうしたらよいのでしょうか。
idをbackgroundcolorやcolorに変更してもできませんでした。
0163Name_Not_Found
垢版 |
2016/12/27(火) 23:57:39.02ID:???
>>162
// スタイルシートから
$(this).css('background-color');
// 要素から
$(this).style('background-color');
0164Name_Not_Found
垢版 |
2016/12/28(水) 00:08:49.34ID:???
>>162
寝ぼけて間違っていたわw
$(this).css('background-color');
これでいける
0165Name_Not_Found
垢版 |
2016/12/28(水) 00:15:47.61ID:???
ハイフンが足りなかったのですね、、、
どうもありがとうございました!
0166156
垢版 |
2016/12/28(水) 17:55:41.14ID:???
皆さんありがとうございます。

>>157
jQuery1.11.1.jsだとr.handleというところが引っかかるようですね。
CallStackの所にこれが表示されます。
jQueryのバージョンを変えるとこれは出なくなりますが動きません。

>>158
元のソースではhttps://code.jquery.com/jquery-latest.min.jsで取り込んでました。
今開くとver.1.11.1のようです。
1.0から順に1.12.4まで入れ替えてみましたが反応しません。

>>161
検証用にGoogle Chrome Canaryをダウンロードしてみました。
拡張機能も空にしてあります。

>>160
シンプルにこれ一つのスクリプトしか使ってないので、
コンフリクトが起きているわけではないようです。
CSSも弄ってみたのですが変化がありません。
0167Name_Not_Found
垢版 |
2016/12/28(水) 18:16:22.65ID:???
>>166
> jQuery1.11.1.jsだとr.handleというところが引っかかるようですね。
> CallStackの所にこれが表示されます。
そのポイントを精査して何が不整合の原因かを調査しないと進まないよ
0168Name_Not_Found
垢版 |
2016/12/29(木) 00:02:47.98ID:???
ブラウザの開発者ツールを起動して、1行ずつデバッグする。
エラーメッセージを取得して、それで検索する

動きませんと書いても、エラーメッセージが無いと、他人にはわからない
0169Name_Not_Found
垢版 |
2017/01/04(水) 13:22:31.50ID:???
ChromeでMacだと問題なくて、
Winだとエラーも出さず無反応の場合、
何が考えられますか?
0170Name_Not_Found
垢版 |
2017/01/04(水) 13:53:25.96ID:???
一番めんどくさいパターンだなw
コンソールで追いかけるしか無いと思う

開発ツールのsourceを開いて{}をクリック
適当にブレークポイントをかましていこう
0171Name_Not_Found
垢版 |
2017/01/04(水) 14:59:31.88ID:???
HTTPでのデータアップロードの進捗状況 35 MB/100 MB (800 kB/s)的なものを
表示するのをjQueryで出来たりしないかななんて思ってるですが、そもそも
ソリューションとしてjQueryを選ぶのはあってますでしょうか?
0173Name_Not_Found
垢版 |
2017/01/04(水) 15:13:18.93ID:???
>>172
方向性はあってるのですね
そこを参考に頑張ってみます
レスありがとうございました
0174Name_Not_Found
垢版 |
2017/01/13(金) 07:44:32.35ID:???
すみません、教えていただけないでしょうか。
「all_offというチェックボックスを押すと、name=jikan-checkに当てはまるチェックボックス(以下チェックボックス群)を全てチェックオフとする」ようなコードを作成しました。
そこまでは正常に動いたのですが、チェックボックス群がチェックON→OFFになったことの検知ができません。
「('#select-form input[name=jikan-check]').on('change'〜」が該当の箇所なのですが、どこか誤りがあるのでしょうか。
console.logも入れて試したのですが、changeに入った形跡がありませんでした。

jQuery(function() {
jQuery('#select-form input[name=jikan-check]').on('change',
function(e, param) {
省略
}
).change();
});
0175Name_Not_Found
垢版 |
2017/01/13(金) 07:45:52.33ID:???
続けてチェックボックス群になります。
【html部分】
<form id="select-form">
時間:
<label>
<input type="checkbox" name="jikan-check" value="J60" checked="checked" />
60H
</label>
<label>
<input type="checkbox" name="jikan-check" value="J80" checked="checked" />
80H
</label>
</form>

<div class="allCheck">
<label><input type="checkbox" id="all_off" /> Check 外す</label>
</div>
0176Name_Not_Found
垢版 |
2017/01/13(金) 09:34:33.83ID:???
Check 外す
はボタンだろう。これがチェックボックスはわかりづらい
チェックボックスでいくなら

jQuery('#select-form input[name=jikan-check]').on('change',
//ここにifをかます。input[name=jikan-check]にチェックがついてない時
if( ){
//後は処理
function(e, param) {
省略
}
0177Name_Not_Found
垢版 |
2017/01/13(金) 14:18:12.95ID:???
jQuery('#select-form input[name="jikan-check"]').on('change', function(e, param) {
console.log($(this).prop('checked'));
}).change();
意味がよく解らないけど、こういうことかな?
0178Name_Not_Found
垢版 |
2017/01/13(金) 22:23:26.93ID:???
>>174
> 「all_offというチェックボックスを押すと、name=jikan-checkに当てはまるチェックボックス(以下チェックボックス群)を全てチェックオフとする」ようなコードを作成しました。

そのコードがない
0179Name_Not_Found
垢版 |
2017/01/13(金) 23:30:37.05ID:???
<input type="checkbox" id="all_off" />
これはbuttonにするべきだね、意味が無いよ
0180Name_Not_Found
垢版 |
2017/01/14(土) 09:49:20.52ID:???
all_off と言いつつ all_on でもある
0181Name_Not_Found
垢版 |
2017/01/16(月) 15:58:03.47ID:3x0ZwRQg
以下のように、離れた場所にscriptを書いた時
実行される順番は保証されていますか?
何かの原因で
console.log(2);
console.log(1);
となることはないでしょうか(IE9以前などの古いブラウザは考えなくても良いです)

<script>
$(function(){
console.log(1);
});
</script>
<script>
$(function(){
console.log(2);
});
</script>
0182Name_Not_Found
垢版 |
2017/01/16(月) 19:07:36.39ID:???
>>181
jQuery3以降だと$(function())は
何らかのエラーが有るとスルーするよ
0183Name_Not_Found
垢版 |
2017/01/16(月) 19:14:06.73ID:???
>>182
おー、なるほど。ありがとうございます!
■ このスレッドは過去ログ倉庫に格納されています

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