のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,491,003人
昨日: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,-20)
    >>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,-35)
    >>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,-86)
    >>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:??? (+66,+25,-22)
    >>180
    ES5の質問しかないように見えるけど、どの辺が問題?
    184 : Name_Not - 2011/12/18(日) 05:29:29.41 ID:??? (+3,-30,-72)
    <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,-147)
    失礼します。
    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,-15)
    >>186
    setTimeout(anim_func, 2000, 1);
    188 : Name_Not - 2011/12/18(日) 11:56:51.17 ID:??? (+41,-30,-110)
    俺毎回思うんだけど、処理で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 スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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