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

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

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    602 = :

    >>600
    目的がさっぱりわからんという事
    そんなイベントを作って何が便利なのかわからん
    回答はしたから好きにしてくれ

    603 = :

    >>597
    勝手に補完してあげる。

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

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

    答え clickイベント発行すれば?

    604 = :

    答えおかしくね

    605 = :

    カスタムイベントを発する→ハンドラを付けた要素がそれを受け取って、それぞれの処理をする

    ということをやりたいのです

    606 = :

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

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

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

    こうすると、windowしかイベントを受け取りません
    testにも伝播してほしいのです

    607 = :

    >>605
    >>599

    608 = :

    >>605-606
    Mapか配列で、要素と関数のペアを管理するといいんじゃないかな

    609 = :

    jQueryではなく標準のメソッドでイベントをディスパッチしてください
    jQueryのtriggerはイベントを作ってるわけではなく擬似的なものです

    610 = :

    >>605-606
    「やりたいこと」じゃなくて目的(なぜそうしたいのか)がわからんってことなんだが
    なぜ同じ話を繰り返すんだ

    611 = :

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

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

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

    これでいいだろ

    612 = :

    >>611
    それが正解だったら、
    馬鹿すぎるとしかw
    セレクタの意味をわかってねーw

    613 = :

    回答ありがとうございます
    統合しますと、
    jqueryだとキャプチャイベントを伝播させることは出来ないので
    ハンドラをリストアップし、自分でよびださないといけない
    ということでしょうか
    jqueryでハンドラのリストアップってどうやるんですか?

    614 = :

    >>613
    任意のタイミングで実行したいだけなら、要素にイベントハンドラを付けたりせずに、配列とかに保持しておけばいいのでは

    615 = :

    >>613
    jQueryは無関係なんだけど、bubbling の仕組みわかってていってるの?
    DOM を実装するブラウザが全ての要素に伝播するわけない
    http://www.y-adagio.com/public/standards/tr_dom2_events/events.html#Events-flow
    そんな仕組みが欲しいなら自前で実装しろって皆いってるんだよ

    616 = :

    おっしゃるとおりですがイベントシステム上でやる方がシンプルになると思うので・・
    bootstrapでは
    show.bs.hoge
    hide.bs.hoge
    などのカスタムイベントを活用しています
    そういうことをやりたいのです
    bootstrapはどうやって伝播させてるのでしょうか

    617 = :

    というかdispatchEventしろといわれてるのに何でtriggerを使うんだよ

    618 = :

    >>616
    bootstrapは知らんが、ソース読めば解読できるんじゃないの?
    なんでも人に聞いて済ませようとするなよ
    教えて訓は嫌われるぞ

    619 = :

    >>616
    イベントじゃないものを無理やりイベントでどうにかしようとしても複雑になるだけでは

    620 = :

    >>616
    具体的にはどのAPIで全ての要素に伝播するわけ?
    再現性のあるソースコードを出してくれ
    http://getbootstrap.com/javascript/

    621 = :

    やりにくいと思ったら、
    それはやり方が間違っていると思え。

    622 = :

    A,B,Cのいずれかのボタンをクリックしたら、A.B.C全てのボタンをクリックしたように振舞って欲しい、って質問を思い出した
    今考えても、わかりにくいことこの上ないUIだな

    623 = :

    HTML5ではイベントはDocumentElement後globalまで伝染するようになってる

    624 = :

    >>623
    間に document が入るのでは?

    626 = :

    かっこ

    627 = :

    かっこつけんなよ

    628 = :

    >>617
    jqueryでdispatchEventに相当するものがtriggerですが?
    >>619
    インシデントがイベント的なのでイベントとして実装しようとしているのです

    629 = :

    ハンドラをリストアップして順に呼び出す、という機能を
    jqueryは標準で提供していないのでしょうか?
    イベントを仮想的に実現しているのだから、
    バブルアップさせたりも自在に出来ると思うのですが・・

    631 = :

    >>628
    trigger のコードには dispatchEvent がありませんが?
    自分の勝手な思い込みを捨てて言われたとおりにやってみてはどうですか?

    632 = :

    >>628
    再現性のあるコードはまだなの?

    633 = :

    jqueryにはdispatchEventというメソッドはありません
    triggerで実装しているからです
    エミュレートしているので、内部でdispatchEventを使っていなくても同様のことです
    エミュレートしたイベントシステムを使っているjqueryに対して
    生javascriptのdispatchEventを使うのは感覚的にマズいと
    B級以上のプログラマーなら分かると思うのですが・・

    635 = :

    違和感があるけどそうなのかなぁ?→やっぱり間違ってた
    という流れが多いので
    違和感を早いうちに表明しているだけです。
    jqueryに対して生のイベントオブジェクトを発行するのは違和感がありますし
    特にjqueryはキャプチャリングフェーズのサポートが弱いので、
    それでクロスブラウザでのバブルアップはしないんじゃないでしょうか。
    するというのならコードで示してください
    間違った方法を提示してコードを書いてみろというのは暴論だと思いますが。

    637 = :

    それで解決するのなら普通にdispatchEvent使えばいいじゃん???
    なに、縛りでもやってるの?

    639 = :

    後出し条件に自演、いつものあれだな

    640 = :

    >>635
    また、条件後出しかよ
    違和感って何だよ、あんたの発言そのものが違和感だらけだからあんた試せよって返されたらあんた試そうと思うのか?
    キャプチャリングフェーズなんて誰も触れてないだろ、キャプチャしないイベントで試したのか?
    バブルダウンて何だよ、そんな用語がDOMのどこに出てくるんだ?
    あんたが質問者なんだから試すのはそっちだろうが
    間違った手法であることを証明出来てないのになぜ回答者に試させるんだよ
    回答者に手間を押し付けて楽しようとする輩はスレ違いだから出て行け

    641 = :

    >>635-636
    あなたにはもう回答する気も起きません。
    あなたの為にコーディングする時間は取れませんので悪しからず。

    642 = :

    回答者の方へ。
    下記に該当する質問はスルーする事を強く推奨します。

    ■慇懃無礼君の質問傾向
    1. 条件を後出しする
    2. 具体的な状況説明は一切せず、期待する動作だけを書く(それでも要求仕様が足りない)
    3. 回答者からの質問にはスルーするか見当違いの返答を返す
    4. 自分の期待通りでない回答がくると、主観的かつ感覚的な駄目出しをして受け入れない
    5. 根拠のない反論、(知識不足による)頓珍漢な反論を繰り返す

    643 = :

    あなたより優秀で話の分かる方に回答してもらえるので答えなくて結構です

    644 = :

    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);
    では
    //=> [,,,,,,,,,]になるのでしょうか?

    646 = :

    要素数じゃなくて配列の長さ、lengthと言った方が適切か
    後者は要素がないからそもそも変化しないということ

    649 = :

    この前説明出たろ
    mapは存在するインデックスに対してしか作用しない
    従って空配列に適応すると元と同じ長さの空配列が帰る

    650 = :

    ああ、そうかわかった、ありがとう
    しかし空配列って紛らわしい言葉だな
    他に言い様が無いのかもしれないが


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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