のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,688,842人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.93 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
151 : Name_Not - 2011/12/17(土) 11:38:52.05 ID:??? (+9,-30,-233)
tableの中のcellをクリックすると、
新しいrowが生成され、クリックされたcellがあるrowの一行下に追加される。
というプログラムを作っています。

すべてのcellのオンクリックイベントに以下のように指定しています。
var row = table.insertRow(lineNum+1);
var cell = row.insertCell(0);
cell.innerHTML = lineNum;

はじめのひとつをクリックしたときは想定通りに動くのですが、
クリックするごとにrowが追加され、rowの行数が増えてしまい、
table.insertRow(lineNum+1)で指定した場所からズレて行ってしまう問題が起こります。

アルゴリズムが悪いのだと思いますが、どうすれば解決できるのかアドバイスをお願いします。
152 : Name_Not - 2011/12/17(土) 11:56:38.77 ID:??? (+57,+29,-41)
クリックされた後、そのクリックされたセルは何行目なのかを調べ
なければ「絶対に駄目」だよね。だって何行目なのか分からないまま
正しい位置に挿入なんてできないから。
153 : Name_Not - 2011/12/17(土) 12:13:11.20 ID:??? (+4,-29,-54)
>>151
何行目かを判定する必要は全くない
クリックされた要素から見て insertBefore もしくは appendChild すればいいだけ
あと、cells にイベントを貼り付けるやり方だと insert する度にイベント定義しなくちゃいけないから tbody あたりにイベント定義する方がいいと思う
154 : Name_Not - 2011/12/17(土) 12:15:37.51 ID:??? (+57,+29,-24)
> クリックされたセルは何行目なのかを調べなければ「絶対に駄目」

そうでもない。
155 : Name_Not - 2011/12/17(土) 12:16:13.36 ID:??? (+51,+28,-12)
oh... かぶりやがた
157 : Name_Not - 2011/12/17(土) 13:16:15.95 ID:6Hc/MEvJ (+100,+30,-235)
ウェブアプリケーションという不幸 】

現在、多くのプログラマ(素人)が
ウェブアプリケーションというものが
ベストな正しい方向だと勘違いしている。

ソフトウェアの作るにおいて
そのアプリケーションに応じた
状態遷移を実装するというのは
基本中の基本である。

その点においてウエブブラウザという
ある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは
論外である。
そこまでするなら普通にアプリケーションを実装
してダウンロードして使って
もらえばいいのである。

ウェブアプリケーションとは
虚構にしか他ならない。

ウェブアプリケーションを
作ろうとしているあなた。
今すぐ普通のアプリケーション
とし設計し始めては
いかがだろう。
そうすればきっと後悔しないですむ。
158 : Name_Not - 2011/12/17(土) 13:16:32.41 ID:6Hc/MEvJ (+32,+29,-299)
HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。

だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。

ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。

包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。
160 : Name_Not - 2011/12/17(土) 13:32:26.91 ID:??? (-11,-30,-21)
>>156
その場合 this がその要素を指す
clickWord = this.textContent || this.innerText || '';
161 : Name_Not - 2011/12/17(土) 13:41:17.15 ID:??? (+6,-29,-34)
現在はes5はまだまだでes3が一般的だと思うんですが、firefox js (mozilla仕様のjs)だと現在どのバージョンが一般的に使われてる(許容されてる)んでしょうか?
162 : Name_Not - 2011/12/17(土) 13:48:08.57 ID:??? (-1,-29,-21)
>>161
IE8以下を除けばES5の実装は整っていると思うけどなあ
163 : Name_Not - 2011/12/17(土) 13:55:29.54 ID:??? (-5,-30,-71)
>>156
this.firstChild.data かねえ
短いコードが必ずしもいいわけではないんだけどね
this よりも event.target や event.currentTarget がDOMらしいと思うし、場合によっては textContent が適切
164 : Name_Not - 2011/12/17(土) 14:02:26.53 ID:??? (+66,+29,-36)
>>157-158
スレ違いだけどWebアプリのデメリットのみを強調してる恣意的な主張だな
デメリットとメリットを秤にかけてメリットが大きいと見るからWebアプリ選択するものだろうに
165 : Name_Not - 2011/12/17(土) 14:09:40.39 ID:??? (+71,+29,-17)
>>157-158
google先生にも言って今後webアプリ作らないよう説得してください。
166 : Name_Not - 2011/12/17(土) 14:17:59.77 ID:??? (+0,-29,-12)
>>161
>>3のCompatibilityのリンクを見てみるといい
FirefoxならMDNを参照するのが確実だけどな
167 : Name_Not - 2011/12/17(土) 14:35:41.66 ID:??? (+3,-29,-71)
mozilla rhinoを使っているので実際のところバージョンに神経質になることはありません。
しかし未だにes3が一般的だとgenerator式やタプル渡しなどがes3系のブラウザだと使えないので、このままだとrhino jsで書いたコード修正が必要になりかなり面倒になります。
es5がまだ一般普及してないなら旧式の構文で書こうかなっているので普及してるjsのバージョンは気になります。
168 : Name_Not - 2011/12/17(土) 14:55:46.67 ID:??? (+41,+29,-15)
以下のスレの住民は皆あなた達を見下してます
JavaScriptスレ
http://toro.2ch.net/test/read.cgi/tech/1314333133/
170 : Name_Not - 2011/12/17(土) 15:15:14.83 ID:??? (+43,-29,-49)
MDNではタプル渡しじゃなくて分割代入と翻訳してましたね。
このスレでバージョンやjs1.6以降についての反応がないところを見ると未だにes3のままでes5系のコードはまだ普及もしてないようですね。
171 : Name_Not - 2011/12/17(土) 16:02:59.88 ID:??? (+4,-29,-87)
>>170
分割代入とかは今のところ実装としてはMozilla JavaScriptの独自実装に過ぎず
仕様としてはES5ではなく、ES.nextの仕様に取り込まれる見通しだよ
ES5は既に最新のブラウザーでだいたい実装済みだよ
http://kangax.github.com/es5-compat-table/
172 : Name_Not - 2011/12/17(土) 16:13:17.94 ID:??? (+97,+29,-14)
>>168
見下してるようには見えませんでしたが・・
173 : Name_Not - 2011/12/17(土) 16:32:24.02 ID:??? (+63,+29,-17)
>>170
他の人が使ってるから使うのか、流行に乗りたいだけ?
普通はブラウザが対応しているかで決める
ES5使ってるが、他の人が使っているかを気にしたことはない
174 : Name_Not - 2011/12/17(土) 16:49:59.76 ID:??? (+11,-11,-3)
ES5は流行ってるんですか?
175 : Name_Not - 2011/12/17(土) 17:20:01.15 ID:??? (+45,+27,+0)
流行ってるよ
176 : Name_Not - 2011/12/17(土) 18:05:18.01 ID:??? (+41,+23,-2)
マニアの間で
177 : Name_Not - 2011/12/17(土) 18:10:16.09 ID:??? (+52,+29,-5)
なんで流行っているかに拘るの?
179 : Name_Not - 2011/12/17(土) 18:54:36.88 ID:??? (+36,-29,-1)
ここは ECMAScript の話題を制限してないよ
180 : Name_Not - 2011/12/17(土) 19:00:39.02 ID:??? (+100,+29,-7)
>>172
全部読みましたか?

>>179
ム板のjsスレの先生方はここは質問用って言ってましたよ
181 : Name_Not - 2011/12/17(土) 19:05:02.40 ID:??? (+57,+29,-15)
同じjsを扱うようですけどそもそも板が違うので内容や目的はまったく違うと思いますよ
183 : Name_Not - 2011/12/17(土) 20:37:47.17 ID:??? (+67,+25,-22)
>>180
ES5の質問しかないように見えるけど、どの辺が問題?
184 : Name_Not - 2011/12/18(日) 05:29:29.41 ID:??? (+3,-30,-73)
<div id="P">
   <div class=a>aaa</div>
   <div class=b>bbb</div>
</div>

$('#a').click.(function(){
  クリックしたaと同じ要素内にあるid=bのhtml
}
とやりたいのですがprentやthisの指定が上手くいきません
本当に初歩的な質問ですみません
185 : Name_Not - 2011/12/18(日) 10:13:21.19 ID:??? (+3,-30,-159)
失礼します。
jQueryで非同期POSTをする場合このようなサンプルがありますが
$.post("hoge.php", {"hoge1" : 1, "hoge2": "hoge"}, my_func);

引数に自分のform要素内のinput要素すべてを一括して送信するにはどうしたらいいでしょうか?
簡単に言えば普通にsubmitしていたページを非同期で更新したいのです。
したがってform要素すべてをtargetのURLに送信し、もどってきたhtmlDomを自分自身に適用したいのです。

ヒントだけでもお願いいたします。
187 : Name_Not - 2011/12/18(日) 11:47:42.38 ID:??? (+18,-30,-27)
>>186
setTimeout(anim_func, 2000, 1);
188 : Name_Not - 2011/12/18(日) 11:56:51.17 ID:??? (+41,-30,-134)
俺毎回思うんだけど、処理でsetTimeout(func,1)ってあるけど
setTimeout(func,0)でよくね?
俺毎回そうやってるんだけどコレもしかて悪いやり方?

マウスアウト→マウスオーバーって動作が行われるとき

var a=1
マウスアウト{
  a =0
  setTimeout(alert(a),0)
}
マウスオーバー{
  a=1
}

ってやるとちゃんとaは1になってるし
190 : Name_Not - 2011/12/18(日) 12:23:03.67 ID:??? (+62,+29,-29)
>>188
最小値は仕様で定められていたような
191 : Name_Not - 2011/12/18(日) 12:24:56.37 ID:??? (+35,+19,-4)
>>189
クオートで括ってないから
192 : Name_Not - 2011/12/18(日) 12:27:13.31 ID:??? (-13,-29,-8)
>>189
class="class1 class2"
半角スペースで区切る。id 属性なども同じ
193 : Name_Not - 2011/12/18(日) 12:34:38.38 ID:dDd8L01n (-19,+28,-2)
>>192
ありがとうございます!
>>191
その場だとどうなるんでしょうか?
194 : Name_Not - 2011/12/18(日) 12:42:12.57 ID:??? (+57,+29,-42)
なんでそんなトリッキーな書き方してるかわからないが
HTMLは基本class="class1 class2"って書くのがデフォだから
そんな書き方やめんしゃい

気になってチンコムズムズしてるんだろうけど正規じゃない書き方はいつの時代も弾かれる
195 : 186 - 2011/12/18(日) 13:07:30.74 ID:??? (+51,+21,+0)
>>187
できました。ありがとう。
196 : Name_Not - 2011/12/18(日) 13:48:16.26 ID:??? (+10,-29,-15)
>>188
それだとsetTimeout使う意味がなくね?
197 : Name_Not - 2011/12/18(日) 13:55:46.75 ID:??? (+46,-30,-189)
>>196
もしも、setTimeoutの中身が無いときと同じような順番で実行されるとしたら
a=0の直後に実行されるわけだから0がalertされるわけじゃん?
んでもマウスアウト→マウスオーバーの順番に実行されるような状況下でもちゃんとマウスオーバーのaの値が適応される

var a=1
マウスアウト{
  a =0
  alert(アウト)
  setTimeout(alert(a),0)
}
マウスオーバー{
  a=1
  alert(オーバー)
}
ってやるとアウト→オーバー→1ってなる
最小値設定されてんのか、そうなんか。処理の優先度だと思ってた
198 : Name_Not - 2011/12/18(日) 14:31:55.61 ID:??? (+0,-29,-64)
>>197
ごめんsetTimeout(alert(a),0)とalert(a)の違いがわからなかった
199 : Name_Not - 2011/12/18(日) 15:34:15.88 ID:??? (+3,-30,-36)
初歩的な質問すいません。
var year = 2011;
var name;
name = year;
var nextyear;
nextyear = name + 1;

alert(nextyear);

この結果が20111になるのは何故でしょうか?
200 : Name_Not - 2011/12/18(日) 15:41:44.14 ID:??? (+34,-29,-19)
DOMのwindow.nameがstringだからやね
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について