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

    私的良スレ書庫

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

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

    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
    601 : Name_Not - 2013/10/27(日) 18:14:59.44 ID:??? (-6,-29,-16)
    CustomEventのことかな?
    602 : Name_Not - 2013/10/27(日) 18:16:38.78 ID:??? (+71,+29,-14)
    >>600
    目的がさっぱりわからんという事
    そんなイベントを作って何が便利なのかわからん
    回答はしたから好きにしてくれ
    603 : Name_Not - 2013/10/27(日) 18:19:27.65 ID:??? (+12,-29,-137)
    >>597
    勝手に補完してあげる。

    (click)ハンドラを付けたすべてのDOM要素がその(click)イベントを受け取れるような
    そういう(click)イベントを発したいのです

    (click)は自分の好きなものの置き換えろ。

    答え clickイベント発行すれば?
    604 : Name_Not - 2013/10/27(日) 18:22:10.66 ID:??? (+46,+28,-2)
    答えおかしくね
    605 : Name_Not - 2013/10/27(日) 18:24:40.11 ID:??? (+127,+29,-33)
    カスタムイベントを発する→ハンドラを付けた要素がそれを受け取って、それぞれの処理をする

    ということをやりたいのです
    606 : Name_Not - 2013/10/27(日) 18:27:51.62 ID:??? (+3,-30,-101)
    $('#test').on('hoge',function(e){
    console.log('test');
    });

    $(window).on('hoge',function(e){
    console.log('window');
    });

    $(window).trigger('hoge');

    こうすると、windowしかイベントを受け取りません
    testにも伝播してほしいのです
    607 : Name_Not - 2013/10/27(日) 18:27:58.83 ID:??? (+66,+30,+0)
    608 : Name_Not - 2013/10/27(日) 18:30:22.12 ID:??? (+10,-29,-8)
    >>605-606
    Mapか配列で、要素と関数のペアを管理するといいんじゃないかな
    609 : Name_Not - 2013/10/27(日) 18:31:12.02 ID:??? (+0,-27,-42)
    jQueryではなく標準のメソッドでイベントをディスパッチしてください
    jQueryのtriggerはイベントを作ってるわけではなく擬似的なものです
    610 : Name_Not - 2013/10/27(日) 18:32:20.26 ID:??? (+75,+29,-18)
    >>605-606
    「やりたいこと」じゃなくて目的(なぜそうしたいのか)がわからんってことなんだが
    なぜ同じ話を繰り返すんだ
    611 : Name_Not - 2013/10/27(日) 18:32:25.63 ID:??? (+35,-30,-95)
    $('#test').on('hoge',function(e){
    console.log('test');
    });

    $(window).on('hoge',function(e){
    console.log('window');
    });

    $('*').trigger('hoge');

    これでいいだろ
    612 : Name_Not - 2013/10/27(日) 18:34:15.53 ID:??? (+60,+29,-20)
    >>611
    それが正解だったら、
    馬鹿すぎるとしかw
    セレクタの意味をわかってねーw
    613 : Name_Not - 2013/10/27(日) 18:37:08.37 ID:??? (+104,+29,-71)
    回答ありがとうございます
    統合しますと、
    jqueryだとキャプチャイベントを伝播させることは出来ないので
    ハンドラをリストアップし、自分でよびださないといけない
    ということでしょうか
    jqueryでハンドラのリストアップってどうやるんですか?
    614 : Name_Not - 2013/10/27(日) 18:41:14.92 ID:??? (+70,+29,-16)
    >>613
    任意のタイミングで実行したいだけなら、要素にイベントハンドラを付けたりせずに、配列とかに保持しておけばいいのでは
    615 : Name_Not - 2013/10/27(日) 18:43:19.78 ID:??? (+18,-28,-87)
    >>613
    jQueryは無関係なんだけど、bubbling の仕組みわかってていってるの?
    DOM を実装するブラウザが全ての要素に伝播するわけない
    http://www.y-adagio.com/public/standards/tr_dom2_events/events.html#Events-flow
    そんな仕組みが欲しいなら自前で実装しろって皆いってるんだよ
    616 : Name_Not - 2013/10/27(日) 18:44:03.42 ID:??? (+104,-29,-92)
    おっしゃるとおりですがイベントシステム上でやる方がシンプルになると思うので・・
    bootstrapでは
    show.bs.hoge
    hide.bs.hoge
    などのカスタムイベントを活用しています
    そういうことをやりたいのです
    bootstrapはどうやって伝播させてるのでしょうか
    617 : Name_Not - 2013/10/27(日) 18:45:14.01 ID:??? (+2,-29,-29)
    というかdispatchEventしろといわれてるのに何でtriggerを使うんだよ
    618 : Name_Not - 2013/10/27(日) 18:48:39.90 ID:??? (+62,+29,-31)
    >>616
    bootstrapは知らんが、ソース読めば解読できるんじゃないの?
    なんでも人に聞いて済ませようとするなよ
    教えて訓は嫌われるぞ
    619 : Name_Not - 2013/10/27(日) 18:51:55.20 ID:??? (+71,+29,-33)
    >>616
    イベントじゃないものを無理やりイベントでどうにかしようとしても複雑になるだけでは
    620 : Name_Not - 2013/10/27(日) 18:59:23.71 ID:??? (+81,+29,-50)
    >>616
    具体的にはどのAPIで全ての要素に伝播するわけ?
    再現性のあるソースコードを出してくれ
    http://getbootstrap.com/javascript/
    621 : Name_Not - 2013/10/27(日) 18:59:59.76 ID:??? (+57,+29,-4)
    やりにくいと思ったら、
    それはやり方が間違っていると思え。
    622 : Name_Not - 2013/10/27(日) 19:34:14.12 ID:??? (+57,+29,-46)
    A,B,Cのいずれかのボタンをクリックしたら、A.B.C全てのボタンをクリックしたように振舞って欲しい、って質問を思い出した
    今考えても、わかりにくいことこの上ないUIだな
    623 : Name_Not - 2013/10/27(日) 19:54:29.16 ID:??? (+4,-29,-28)
    HTML5ではイベントはDocumentElement後globalまで伝染するようになってる
    624 : Name_Not - 2013/10/27(日) 20:15:51.56 ID:??? (+3,-25,-2)
    >>623
    間に document が入るのでは?
    625 : Name_Not - 2013/10/27(日) 23:11:23.24 ID:??? (+0,-28,-7)
    関数を実行するときの()ってなにか名称があるのでしょうか?
    626 : Name_Not - 2013/10/27(日) 23:15:28.25 ID:??? (+43,+25,+0)
    かっこ
    627 : Name_Not - 2013/10/28(月) 00:56:39.03 ID:??? (+52,+29,+0)
    かっこつけんなよ
    628 : Name_Not - 2013/10/28(月) 01:52:19.84 ID:??? (+47,-29,-70)
    >>617
    jqueryでdispatchEventに相当するものがtriggerですが?
    >>619
    インシデントがイベント的なのでイベントとして実装しようとしているのです
    629 : Name_Not - 2013/10/28(月) 01:57:24.84 ID:??? (+57,+29,-59)
    ハンドラをリストアップして順に呼び出す、という機能を
    jqueryは標準で提供していないのでしょうか?
    イベントを仮想的に実現しているのだから、
    バブルアップさせたりも自在に出来ると思うのですが・・
    630 : Name_Not - 2013/10/28(月) 02:06:51.13 ID:??? (-1,-29,-114)
    >>jqueryでdispatchEventに相当するものがtriggerですが?
    いいえ、jQueryにはdispatchメソッドが有ります
    アホですか?
    631 : Name_Not - 2013/10/28(月) 02:13:52.36 ID:??? (+15,-14,-37)
    >>628
    trigger のコードには dispatchEvent がありませんが?
    自分の勝手な思い込みを捨てて言われたとおりにやってみてはどうですか?
    632 : 620 - 2013/10/28(月) 02:39:49.52 ID:??? (+59,+25,-5)
    >>628
    再現性のあるコードはまだなの?
    633 : Name_Not - 2013/10/28(月) 03:37:16.41 ID:??? (+39,-30,-183)
    jqueryにはdispatchEventというメソッドはありません
    triggerで実装しているからです
    エミュレートしているので、内部でdispatchEventを使っていなくても同様のことです
    エミュレートしたイベントシステムを使っているjqueryに対して
    生javascriptのdispatchEventを使うのは感覚的にマズいと
    B級以上のプログラマーなら分かると思うのですが・・
    634 : Name_Not - 2013/10/28(月) 05:30:15.99 ID:??? (+66,+30,+0)
    >>633
    いい加減、中途半端な知識で反論⇒それに突っ込むという流れにうんざりなのですが。
    なぜ自信満々に反論できるんです?
    知らない知識を教えてもらう質問者の立場上、回答者のほうが正しいかもしれない(100%とはいいません)ぐらいの認識は持っておくべきだと思いますが。

    > エミュレートしたイベントシステムを使っているjqueryに対して
    > 生javascriptのdispatchEventを使うのは感覚的にマズいと
    > B級以上のプログラマーなら分かると思うのですが・・
    内部的に addEventListener を使用している jQuery に対して dispatchEvent を使っても問題ない事はJavaScriptコードを解読できるプログラマなら分かると思うのですが、違いますか?
    そもそも、回答者はjQueryを要件にあげていないようですが、jQueryとdispatchEventを組み合わせる回答だとどうして判断したのですか?
    jQueryを使わなければ済む話ではないのですか?

    一定の回答は出ているのですから、まずはその回答に沿ったコードを書いてみるべきではないですか?
    ここは自助努力を持つ質問者向けのスレッドです。あなたの物言いからは自分でコードを書いてみようという自助努力の傾向が一切見られません、典型的な教えて君です。

    そろそろ、他の質問と混同するのでID出すなり、固定HNを使用すべきではないですか?( >>1 )
    635 : Name_Not - 2013/10/28(月) 06:05:21.67 ID:??? (+133,+30,-148)
    違和感があるけどそうなのかなぁ?→やっぱり間違ってた
    という流れが多いので
    違和感を早いうちに表明しているだけです。
    jqueryに対して生のイベントオブジェクトを発行するのは違和感がありますし
    特にjqueryはキャプチャリングフェーズのサポートが弱いので、
    それでクロスブラウザでのバブルアップはしないんじゃないでしょうか。
    するというのならコードで示してください
    間違った方法を提示してコードを書いてみろというのは暴論だと思いますが。
    636 : Name_Not - 2013/10/28(月) 06:06:18.17 ID:??? (-1,-29,-3)
    ×クロスブラウザでのバブルアップ
    ○クロスブラウザでのバブルダウン
    でした
    637 : Name_Not - 2013/10/28(月) 09:33:00.24 ID:??? (+44,+16,-33)
    それで解決するのなら普通にdispatchEvent使えばいいじゃん???
    なに、縛りでもやってるの?
    638 : Name_Not - 2013/10/28(月) 12:05:09.52 ID:??? (-15,-29,-27)
    javascriptでデータベースにアクセスする場合
    AccessとMySQLどちらの方が使いやすいとかありますか?
    639 : Name_Not - 2013/10/28(月) 12:07:51.00 ID:??? (+52,+29,-6)
    後出し条件に自演、いつものあれだな
    640 : Name_Not - 2013/10/28(月) 12:27:40.17 ID:??? (+76,+30,-113)
    >>635
    また、条件後出しかよ
    違和感って何だよ、あんたの発言そのものが違和感だらけだからあんた試せよって返されたらあんた試そうと思うのか?
    キャプチャリングフェーズなんて誰も触れてないだろ、キャプチャしないイベントで試したのか?
    バブルダウンて何だよ、そんな用語がDOMのどこに出てくるんだ?
    あんたが質問者なんだから試すのはそっちだろうが
    間違った手法であることを証明出来てないのになぜ回答者に試させるんだよ
    回答者に手間を押し付けて楽しようとする輩はスレ違いだから出て行け
    641 : Name_Not - 2013/10/28(月) 12:45:57.62 ID:??? (+75,+29,-26)
    >>635-636
    あなたにはもう回答する気も起きません。
    あなたの為にコーディングする時間は取れませんので悪しからず。
    642 : Name_Not - 2013/10/28(月) 13:12:50.72 ID:??? (+63,+30,-149)
    回答者の方へ。
    下記に該当する質問はスルーする事を強く推奨します。

    ■慇懃無礼君の質問傾向
    1. 条件を後出しする
    2. 具体的な状況説明は一切せず、期待する動作だけを書く(それでも要求仕様が足りない)
    3. 回答者からの質問にはスルーするか見当違いの返答を返す
    4. 自分の期待通りでない回答がくると、主観的かつ感覚的な駄目出しをして受け入れない
    5. 根拠のない反論、(知識不足による)頓珍漢な反論を繰り返す
    643 : Name_Not - 2013/10/28(月) 14:05:28.08 ID:??? (+57,+29,-7)
    あなたより優秀で話の分かる方に回答してもらえるので答えなくて結構です
    644 : Name_Not - 2013/10/28(月) 14:34:18.57 ID:??? (+13,-30,-122)
    Array.apply(null, Array(10)).map(Function.prototype.call, parseInt);
    //=> [0,1,2,3,4,5,6,7,8,9]
    という動作について質問です。mapの挙動については理解できたのですが、
    前半について、なぜ
    Array(10).map(Function.prototype.call, parseInt);
    では
    //=> [,,,,,,,,,]になるのでしょうか?
    645 : Name_Not - 2013/10/28(月) 14:51:01.46 ID:??? (-2,-30,-42)
    Array.apply(null, Array(10))はundefinedで埋まった要素数10の配列
    Array(10)は要素数10の空配列、だからmapで変化しない
    646 : Name_Not - 2013/10/28(月) 14:57:11.48 ID:??? (+56,+28,-35)
    要素数じゃなくて配列の長さ、lengthと言った方が適切か
    後者は要素がないからそもそも変化しないということ
    648 : Name_Not - 2013/10/28(月) 16:04:40.23 ID:??? (-2,-30,-45)
    不思議なコードだな
    parseInt は一体何をparseしているんだろう?
    配列 index だとするならArray(10).map(…) も同じ結果になりそうなものだが
    649 : Name_Not - 2013/10/28(月) 16:15:12.69 ID:??? (+57,+29,-30)
    この前説明出たろ
    mapは存在するインデックスに対してしか作用しない
    従って空配列に適応すると元と同じ長さの空配列が帰る
    650 : Name_Not - 2013/10/28(月) 16:18:30.33 ID:??? (+57,+29,-27)
    ああ、そうかわかった、ありがとう
    しかし空配列って紛らわしい言葉だな
    他に言い様が無いのかもしれないが
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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