私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.138 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
http://ics.media/entry/17451/
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
これ本当?
生JSで大変なのは分かるけど、jQuery使っても簡単にならないの??
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
これ本当?
生JSで大変なのは分かるけど、jQuery使っても簡単にならないの??
>>903
映ってねーぞバーカw
映ってねーぞバーカw
>>904
■ピュアJSの場合
要素.aria = 値;
■jQの場合
要素.attr({ aria : 値 });
ってのを、わざわざJS用意して書くじゃん?
なんならこれやる前に、要素にアクセスする必要もある
vueとかだと、それをHTML側に直に書けるから便利だねっつー話だと思う
まあそれぞれフレームワーク毎に特殊な書き方するわけだけど
■ピュアJSの場合
要素.aria = 値;
■jQの場合
要素.attr({ aria : 値 });
ってのを、わざわざJS用意して書くじゃん?
なんならこれやる前に、要素にアクセスする必要もある
vueとかだと、それをHTML側に直に書けるから便利だねっつー話だと思う
まあそれぞれフレームワーク毎に特殊な書き方するわけだけど
>>903
ワロタw いや失敬失敬。
でもそこは本質的な所じゃないから後よろ!
xとyの情報も持ってるからそれでできるはず!
>>904
相変わらず「脱jQuery」が目的になっちゃってる(感じがする)ダメなタイトルだなw
これ2つの意味がある。
1. ブラウザネイティブのDOM APIを使いましょう。
2. DOM操作(DOM API含む)をするのをやめましょう。
この記事は2みたいだけど、DOM操作をやめる = それが必要ないフレームワークを
使いましょうってことだけど、まあ、そのフレームワークの導入も正直骨が折れるだろうねw
で話を戻すけど、この人、頭がアプリ脳になってるんだと思う。
作り方がね。アプリの作り方。要素にARIA属性をつけようと思ったら、
その要素ごとにいちいちにコードを書かなきゃいけないと思ってる。
要素ごとにいちいち書くよりもフレームワーク使ってパーツを作ったほうが良い。という発想。
でもjQueryは特定のセレクタに対して横断的に処理を追加するもの。
要素ごとじゃなくて、クラスごとに1個書けばいいだけなの。
例えばリンク先のaria-checkedであれば、<button class="checked-button"> みたいに
クラスをつけておけば、jQueryでそのクラスに対して横断的に、aria属性を書き換える
処理を追加する。だから要素ごとにコード書く必要もないし、HTMLはシンプルになる。
ワロタw いや失敬失敬。
でもそこは本質的な所じゃないから後よろ!
xとyの情報も持ってるからそれでできるはず!
>>904
相変わらず「脱jQuery」が目的になっちゃってる(感じがする)ダメなタイトルだなw
これ2つの意味がある。
1. ブラウザネイティブのDOM APIを使いましょう。
2. DOM操作(DOM API含む)をするのをやめましょう。
この記事は2みたいだけど、DOM操作をやめる = それが必要ないフレームワークを
使いましょうってことだけど、まあ、そのフレームワークの導入も正直骨が折れるだろうねw
で話を戻すけど、この人、頭がアプリ脳になってるんだと思う。
作り方がね。アプリの作り方。要素にARIA属性をつけようと思ったら、
その要素ごとにいちいちにコードを書かなきゃいけないと思ってる。
要素ごとにいちいち書くよりもフレームワーク使ってパーツを作ったほうが良い。という発想。
でもjQueryは特定のセレクタに対して横断的に処理を追加するもの。
要素ごとじゃなくて、クラスごとに1個書けばいいだけなの。
例えばリンク先のaria-checkedであれば、<button class="checked-button"> みたいに
クラスをつけておけば、jQueryでそのクラスに対して横断的に、aria属性を書き換える
処理を追加する。だから要素ごとにコード書く必要もないし、HTMLはシンプルになる。
> 昔のコードはHTMLを組み立てるのに文字列を結合するというストイックなやり方でした。
まあ、こんな事書いてるし、昔のコードがクソすぎるってだけなわけでw
まあ、こんな事書いてるし、昔のコードがクソすぎるってだけなわけでw
function(d){
// 1から15までのパネル及びブランク(null)の位置関係を調べるための配列
// 長さは4x4の16。座標(x,y)に位置する要素は、配列上ではpannels[x+y*4]に存在する
const pannels = [];
let container = null; // パズル本体
// パネルをスライドさせる処理
// x, y はパネルの座標でそれぞれ0以上4未満の整数
function slide(elem, dx, dy) {
const x = Math.max(Math.min(3, parseInt(elem.dataset.x) + dx), 0);
const y = Math.max(Math.min(3, parseInt(elem.dataset.y) + dy), 0);
elem.style.left = x * 25 + "%";
elem.style.top = y * 25 + "%";
elem.dataset.x = x;
elem.dataset.y = y;
}
助言を受け、スライドパズルのソースのここまでをchromeのデベロッパツールから実行してみたのですが、どういう処理が行われているか確認するには、これをコンソールなどに出力してみるってことでしょうか
// 1から15までのパネル及びブランク(null)の位置関係を調べるための配列
// 長さは4x4の16。座標(x,y)に位置する要素は、配列上ではpannels[x+y*4]に存在する
const pannels = [];
let container = null; // パズル本体
// パネルをスライドさせる処理
// x, y はパネルの座標でそれぞれ0以上4未満の整数
function slide(elem, dx, dy) {
const x = Math.max(Math.min(3, parseInt(elem.dataset.x) + dx), 0);
const y = Math.max(Math.min(3, parseInt(elem.dataset.y) + dy), 0);
elem.style.left = x * 25 + "%";
elem.style.top = y * 25 + "%";
elem.dataset.x = x;
elem.dataset.y = y;
}
助言を受け、スライドパズルのソースのここまでをchromeのデベロッパツールから実行してみたのですが、どういう処理が行われているか確認するには、これをコンソールなどに出力してみるってことでしょうか
>>909
間違ってるものをドヤ顔で晒して人様の手を煩わせておいて失敬失敬はないだろ
間違ってるものをドヤ顔で晒して人様の手を煩わせておいて失敬失敬はないだろ
>>904
http://ics.media/entry/17451/
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
って書いてあったから、サンプル作ったよ。リンク先にある。gridLayoutとlistLayoutの切替部分
http://jsfiddle.net/j3k94sz0/
正直、ボタンでラジオボタンのようなものを作るから面倒なことになるんだが、
そのお題で、汎用的なjQueryのコードにした。
「切り替えボタン+関連する要素にボタン情報を伝える」汎用コンポーネント
リンク先には
> JSのロジックにはWAI-ARIAの一切の処理が入っていません。
とか書いてあるが、HTMLにWAI-ARIAの処理(JavaScript)が入っていて
思考の切り替えが必要になる。HTMLに埋め込まれたJavaScriptも「JSのロジック」とみなせば、
「JSのロジック」にWAI-ARIAの処理が入ってるじゃんwってことになる。
俺が書いたコードは「HTMLにはJavaScriptの一切の処理が入っていません」
わずか6行のjQueryのコードで「ボタンによる切り替え」に対応している。
もちろんこれが複数あっても対応できる。別のプロジェクトでも使えるだろう。
っていうか、普通にラジオボタン使って作れば、もう少しわかりやすくできるんだがw
http://ics.media/entry/17451/
> WAI-ARIAはHTML要素の属性を動的に書き換えなければならないため、生JSやjQueryで制御しようとすると、正直、骨が折れます。
って書いてあったから、サンプル作ったよ。リンク先にある。gridLayoutとlistLayoutの切替部分
http://jsfiddle.net/j3k94sz0/
正直、ボタンでラジオボタンのようなものを作るから面倒なことになるんだが、
そのお題で、汎用的なjQueryのコードにした。
「切り替えボタン+関連する要素にボタン情報を伝える」汎用コンポーネント
リンク先には
> JSのロジックにはWAI-ARIAの一切の処理が入っていません。
とか書いてあるが、HTMLにWAI-ARIAの処理(JavaScript)が入っていて
思考の切り替えが必要になる。HTMLに埋め込まれたJavaScriptも「JSのロジック」とみなせば、
「JSのロジック」にWAI-ARIAの処理が入ってるじゃんwってことになる。
俺が書いたコードは「HTMLにはJavaScriptの一切の処理が入っていません」
わずか6行のjQueryのコードで「ボタンによる切り替え」に対応している。
もちろんこれが複数あっても対応できる。別のプロジェクトでも使えるだろう。
っていうか、普通にラジオボタン使って作れば、もう少しわかりやすくできるんだがw
unityに匹敵するjavascript用ゲームエンジンを作って欲しい。
>>917
よし、お前さんが基礎を作って旗を振るんだ
よし、お前さんが基礎を作って旗を振るんだ
unityは以前、javascriptが使えていたのに…。
残念。
残念。
>>919
結構最近だよね
結構最近だよね
htmlのonclickを使わず、idの取得だけでクリックイベントを作ることは出来ますか?
>>922
click()
click()
>>922
Mouse鮻vent
Mouse鮻vent
じゃバスク版ユニティを作れ。
>>948
>>948
>>876
Ruby で作った。単純に、1文字ずつ比べる
filepaths = %w(abcd ab ab abc abcd aby)
index = nil
catch( :exit ) do # 2重ループを、一気に抜ける
filepaths.first.each_char.with_index do | char, idx |
# p [ char, idx ]
filepaths.each do | fp | # 1文字ずつ比較する
throw :exit if char != fp[ idx ]
end
index = idx
end
end
p index #=> 1。つまり、ab まで一致する
Ruby で作った。単純に、1文字ずつ比べる
filepaths = %w(abcd ab ab abc abcd aby)
index = nil
catch( :exit ) do # 2重ループを、一気に抜ける
filepaths.first.each_char.with_index do | char, idx |
# p [ char, idx ]
filepaths.each do | fp | # 1文字ずつ比較する
throw :exit if char != fp[ idx ]
end
index = idx
end
end
p index #=> 1。つまり、ab まで一致する
>>911
そんな、ややこしいものをやらなくて良い
君がやるべきは、x から、2, 3 には行けるけど、右・下には行けない。
こういうチェック
0 は番兵。行けない部分に、壁を作って、判定を簡単にしている。
プログラミングよりも先に、図を描くのが重要!
0 0 0 0
0 1 2 0
0 3 x 0
0 0 0 0
そんな、ややこしいものをやらなくて良い
君がやるべきは、x から、2, 3 には行けるけど、右・下には行けない。
こういうチェック
0 は番兵。行けない部分に、壁を作って、判定を簡単にしている。
プログラミングよりも先に、図を描くのが重要!
0 0 0 0
0 1 2 0
0 3 x 0
0 0 0 0
>>930
問題はそこではなくて、これはデータを1次元配列で持ってるのが面倒くさい原因
2次元配列で持っていれば、別に番兵を作る必要もない。配列の範囲外は必ずundefined。
Rubyと違ってa[-1]が配列の後ろから1番目なんて変な仕様はないから自然な番兵となる。
もしくは直感と反するが
0 0 0 0 0 0
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
0 0 0 0 0 0
から上下の0を取り除いて
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
最初と最後の0を取り除いて(_ に置き換えてる)
_ 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x _
1次元配列にして、連続する0を1個にする。
1 2 3 4 0 5 6 7 8 0 9 A B C 0 D E F x
このデータで、現在のパネルの、左右を+1/-1、上下を+5/-5として扱えば動くぞ。
それを実装たのがこれだhttp://jsfiddle.net/gqvn87k5/
>>913 ほれ、なおしたぞ。ドヤ?
問題はそこではなくて、これはデータを1次元配列で持ってるのが面倒くさい原因
2次元配列で持っていれば、別に番兵を作る必要もない。配列の範囲外は必ずundefined。
Rubyと違ってa[-1]が配列の後ろから1番目なんて変な仕様はないから自然な番兵となる。
もしくは直感と反するが
0 0 0 0 0 0
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
0 0 0 0 0 0
から上下の0を取り除いて
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
最初と最後の0を取り除いて(_ に置き換えてる)
_ 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x _
1次元配列にして、連続する0を1個にする。
1 2 3 4 0 5 6 7 8 0 9 A B C 0 D E F x
このデータで、現在のパネルの、左右を+1/-1、上下を+5/-5として扱えば動くぞ。
それを実装たのがこれだhttp://jsfiddle.net/gqvn87k5/
>>913 ほれ、なおしたぞ。ドヤ?
出たよrubyのクソ仕様w
C時代の番兵でいろんなスレでアスペ荒らししてたのはRubyのクソ仕様が原因だったwww
C時代の番兵でいろんなスレでアスペ荒らししてたのはRubyのクソ仕様が原因だったwww
Rubyと書いてあるじゃん
まあJavaScriptのスレでRubyで答える方がおかしいんだけど
まあJavaScriptのスレでRubyで答える方がおかしいんだけど
しかもこういう用途に例外を使うとかいうクソ発想の持ち主w
スレは、答えを書く所ではない。
Ruby などの擬似コードで、考え方・ヒントを教える所
それをヒントにして考える・コードを書くのは、質問者自身がやるべき!
答えをコピペする奴は、進歩もしないし、どうにもならない
Ruby などの擬似コードで、考え方・ヒントを教える所
それをヒントにして考える・コードを書くのは、質問者自身がやるべき!
答えをコピペする奴は、進歩もしないし、どうにもならない
> Ruby などの擬似コードで、考え方・ヒントを教える所
ダメなコードから学べるのは
ダメなコード例です。
ダメなコードから学べるのは
ダメなコード例です。
2重ループ脱出には、catch, throw を使うのが定番。
本を読んでないだろ?
配列のインデックスが負数の場合は、配列を後ろから数えるのも定番。
色んな言語を調べてないだろ?
本を読んでないだろ?
配列のインデックスが負数の場合は、配列を後ろから数えるのも定番。
色んな言語を調べてないだろ?
>>944
そもそも2重ループなんてするものじゃないから(笑)
filepaths = %w(ab abc abc abc abcd abc)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
そもそも2重ループなんてするものじゃないから(笑)
filepaths = %w(ab abc abc abc abcd abc)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
あ、filepaths の内容戻すの忘れてたw
filepaths = %w(abcd ab ab abc abcd aby)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
これもう少し簡潔にかけそうな気がしてるんだけど、
すぐに思いつかない。
filepaths = %w(abcd ab ab abc abcd aby)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
これもう少し簡潔にかけそうな気がしてるんだけど、
すぐに思いつかない。
jQueryが得意な人は、いろんなものが得意なんやで?w
>>942
jQueryばかり勧める人がよくいえたもんだな
jQueryばかり勧める人がよくいえたもんだな
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.128 + (1001) - [97%] - 2016/2/26 6:45
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.134 + (1001) - [97%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.137 + (1003) - [97%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.139 + (1001) - [97%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.117 + (1009) - [95%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [95%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
トップメニューへ / →のくす牧場書庫について