JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (766レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) レス栞 あぼーん

637
(1): デフォルトの名無しさん [sage] 2020/07/24(金)00:22 ID:fMjVnhWI(1/38)
お前のオレオレ用語っていうのは「バブル主体」だアホめ
なんだよバブル主体って(笑)
638
(1): デフォルトの名無しさん [sage] 2020/07/24(金)00:24 ID:fMjVnhWI(2/38)
>>636
> JavaScriptが世のGUIを席巻しつつあるのは、イベントバブルの功績が大きい。

だから、イベントバブルじゃなくてイベントデリゲーションな(笑)
何がオレオレ用語なのかわかってない。
用語の使い方を間違ってんだよお前は。

jQueryはイベントバブルを使ってる
639
(1): デフォルトの名無しさん [sage] 2020/07/24(金)00:25 ID:fMjVnhWI(3/38)
何度も言うがjQueryを使うということは
イベントバブルを使ってるということだ
640
(1): デフォルトの名無しさん [sage] 2020/07/24(金)00:28 ID:fMjVnhWI(4/38)
ちなみにイベントデリゲーションという用語は
MDNでも使われているが、jQueryが最初に使った用語なんじゃないかと思ってる。

もともとはjQueryでイベントデリゲーションを使う時
delegateというメソッドを使っていたから。それが廃止になりonに統一された。

onに統一された結果、jQueryでイベントデレゲーションを使ったコードと
使ってないコードの差異が減って、e.targetを使わずにthisでコードが書けるようになった。

jQueryでイベントデレゲーションを使うのは、DOM APIを使うよりも
格段にシンプルに書けるようになっている
無関係のイベントハンドラを統合するという単一責任の原則に反するコードを書くことなく
イベントデレゲーションを使うことが可能になっている。
645: デフォルトの名無しさん [sage] 2020/07/24(金)07:07 ID:fMjVnhWI(5/38)
>>642
イベントバブルっていうのはイベントがバブルのように上に上がっていくってだけで
一つのイベントハンドラで処理を行うって意味じゃねーんだよw
あーほ
646: デフォルトの名無しさん [sage] 2020/07/24(金)07:07 ID:fMjVnhWI(6/38)
>>642
> だから確かにバブルを利用してはいるが、これだともっさり遅くはなる。(とはいえGUIの場合は大抵問題にはならない)
遅くなるの理由が何もないwww
647: デフォルトの名無しさん [sage] 2020/07/24(金)07:09 ID:fMjVnhWI(7/38)
>>642
> 確かにMDNには書いてあるが、俺は今まで聞いたこともなかったし、

それがすべて。お前が無知なだけ
648: デフォルトの名無しさん [sage] 2020/07/24(金)07:10 ID:fMjVnhWI(8/38)
結局の所 >>635 の まとめで書いたとおり

こいつはイベントデリゲーション(複数の要素に同じイベントハンドラを割り当てるコード)を
jQueryで書いているコードを見たことがない、もしくは見たことあっても気づかないで
jQueryでもDOM APIと同じように書くしかないはずだ!だからjQueryを使う意味がない!と考えていたようだが
そのイベントデリゲーションこそjQueryでシンプルに書けるコードの一つだったという話です。

そのイベントデリゲーションこそjQueryでシンプルに書けるコードの一つだったという話です。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
649
(1): デフォルトの名無しさん [sage] 2020/07/24(金)07:27 ID:fMjVnhWI(9/38)
>>642
> が、まあ、いずれにしてもこれをDOMAPIだけで書くのも別段苦労しないし、

だから最初に書けと言ってる。なんで書かないのか?
653: デフォルトの名無しさん [sage] 2020/07/24(金)08:55 ID:fMjVnhWI(10/38)
> まず示したように、「イベントデリゲーション」なんて言葉は誰も使ってないから止めとけ。



https://developer.mozilla.org/ja/docs/Web/API/Event/target
event.target プロパティは、イベントデリゲーションを実装するために使用できます。

https://developer.mozilla.org/en-US/docs/Web/API/Event/target
The event.target property can be used in order to implement event delegation.
656
(1): デフォルトの名無しさん [sage] 2020/07/24(金)08:58 ID:fMjVnhWI(11/38)
>>650
> イベントバブルの説明に必ず出てくる言葉なら、

でてくるわけねーだろw
イベントバブル=イベントデリゲーションじゃねーんだから

DOM APIのイベントモデルではイベントバブルがデフォルトで使われる
イベントモデルの説明でバブルフェーズとキャプチャフェーズの話は出る
だがイベントデリゲーションはかならず使うものではない

お前が、イベントバブル=イベントデリゲーション (つまり同じ意味)だと
勘違いしてるから、使用頻度=ヒットページ数も1:1になるという間違った結論になってる

イベントデリゲーションはかならず使うものじゃないんだから
イベントデリゲーションの方が数は少なくなるのは当たり前
658
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:08 ID:fMjVnhWI(12/38)
>>651
> 俺は「イベントバブルを最初に実装した『フレームワークが』がHTMLだと言った。

HTMLの仕様にイベントバブルなんてものはない
DOM APIの仕様だ

「イベントバブルを最初に実装した」というのはどういう意味か言ってみ
上の要素でイベントを捕まえて処理することではないのはもう理解してるよな

お前は「イベントがDOM要素の下位から上位へバブルのように登っていくこと」を実装した。
と言ってるわけだが、自分で理解してるのか?
659
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:09 ID:fMjVnhWI(13/38)
>>651
> むしろお前がそれを書けないと言っているに近いが、それをお前は認めるか?

だからさっさと書けよ。お前をテストしてやってるに決まってるだろw
最初からコード書けと言ってるのになんで書けないのは
お前がそれを書けないと言っているに近いが、それをお前は認めるか?
660
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:21 ID:fMjVnhWI(14/38)
脱jQueryなんて言葉が出てきても、脱jQueryが進んでいないのは事実だろ

https://w3techs.com/technologies/history_overview/javascript_library/all/y

jQuery
2017年1月 71.9%
2018年1月 73.1% (+0.1%/月)
2019年1月 73.6% (+0.05%/月)
2020年1月 74.2%
同年2月 74.4% (+0.2%/月)※1ヶ月経過時点
同年6月 75.5% (+0.26%/月))※5ヶ月経過時点
同年7月 76.0% (+0.3%/月)※6ヶ月経過時点

今年はなぜかjQueryのシェアの増加が加速してきてるんだわ。
最初の1ヶ月で0.2%しか増えてなかったのに、
6ヶ月後は1.2%増ではなく1.8%増、増加スピードが上がってる

後半さらに増加スピードが上がるとは思えないが、
このペースだと今年は1年で4%も増える可能性だってある。
ここ数年1%程度しか増えていなかったのに不思議だ

脱jQueryなんて所詮言葉だけだったということだ
662
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:30 ID:fMjVnhWI(15/38)
> バブルを利用する時点で「親で纏めて処理する」大前提なんだよ。これも既に言ったが。

誰が言ってるんですか?
そうであってほしいという願望ですよねw
665
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:39 ID:fMjVnhWI(16/38)
さて、どこに親で処理すると書いてあるのでしょうか?w
https://en.wikipedia.org/wiki/Event_bubbling

Use of Event Bubbling
To handle cases where one event has more than one handler,
event bubbling concept can be implemented. The major use of
event bubbling is the registration of default functions present in the program.
In recent times, not many developers use event capturing or bubbling in particular.
It is not necessary to implement event bubbling; it may become complicated for
the users to keep track of the actions getting executed because of an event.[1]

英語は読めるけど(あんたために、でも面倒なので)Google翻訳しますねw

イベントバブリングの使用
1つのイベントに複数のハンドラーがある場合を処理するために、イベントバブリングの概念を実装できます。
イベントバブリングの主な用途は、プログラムに存在するデフォルト関数の登録です。
最近では、特にイベントキャプチャやバブリングを使用する開発者は多くありません。
イベントバブリングを実装する必要はありません。イベントのために実行されるアクションを
ユーザーが追跡するのは複雑になる場合があります。[1]

「1つのイベントに複数のハンドラーがある場合を処理するため」というのは
要素をクリックしたときに、クリックした要素→それが含まれた親要素→さらにそれらが含まれた親要素と
複数の要素(の複数のクリックイベントハンドラ)が実行されるわけです。
これがイベントバブリングの例として上げられています。

そして主な用途はデフォルト関数(デフォルト処理)の登録です。
またイベントキャプチャやバブリングを使用する開発者は多くないとまで書いてあります。
親でまとめて処理する話はでてきていません。

面白いですね(笑)
666
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:41 ID:fMjVnhWI(17/38)
>>663
> むしろお前は何をどう勘違いして俺に突っかかってきてるんだ?

何をどうって、jQueryはイベントバブリングしかサポートしてないのに
jQueryでイベントバブルを使うと意味がないと言っただろw

どういう意味ですか?jQueryはイベントバブルしか使いませんよ?
イベントバブルを使うということは親で処理するって意味じゃありませんよ?
わかってますかw
667
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:42 ID:fMjVnhWI(18/38)
>>664
> なら逆に、「イベントバブルを利用するが親ではイベントを処理しない」方式で何か有効活用出来るか?
英語のwikipediaにかいてある。

> それがあれば「大前提」ってのは俺の勘違いだと認めるが。
それがあったのでお前の勘違いだと認めるようにw
668
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:43 ID:fMjVnhWI(19/38)
>>663
> イベントがバブルするGUIフレームワークというのは、俺が知ってる中ではHTML/CSS/JavaScriptが初だよ。

HTML/CSS/JavaScriptのいずれの仕様でもありません。

DOMの仕様です。DOMです。Javaでも使えるDOMです。
何度言えば理解できるんだ?
670
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:49 ID:fMjVnhWI(20/38)
>>669
> wikiじゃねーかよ!そりゃ書いた奴が分かってねえんだよ。

お前はwikipedia以外のなにか信用できるものを持ってきたか?
お前の意見はwikipedia以下だってことは理解してるか?
671
(1): デフォルトの名無しさん [sage] 2020/07/24(金)09:52 ID:fMjVnhWI(21/38)
>>669
jQueryは最初からイベントバブルを採用してるのを知らないで
イベントバブルだとjQueryの意味がなくなる!

といった話はどうなったの?w

別の話に逃げたねw
672: デフォルトの名無しさん [sage] 2020/07/24(金)10:00 ID:fMjVnhWI(22/38)
まとめ更新

こいつはイベントバブルの用途をイベントデリゲーション(複数の要素に同じイベントハンドラを割り当てるコード)しかしらず
イベントバブル=イベントデリゲーションのことだ!と思い込んでオレオレ用語で「イベントバブルを実装!」と言っていた
こいつは自分にしか理解できない間違った用語の使い方を指定ながら、コミュニケーションがどうとか語っていた

こいつはMDNにかかれているイベントデリゲーションのページを見せても
世の中で使われてない!と強弁した。

こいつはHTML/CSS/JavaScriptがイベントバブルを実装した最初のフレームワークだと言った。
(当たり前がHTMLはマークアップ言語、CSSはスタイルシート、JavaScriptは言語で
どれにもイベントバブルに関する実装など存在しない。イベントバブルはDOMで規定されている)

こいつはjQueryは最初からイベントバブルに対応していたことも知らず、
(というか古いIEがイベントバブルしか実装されていなかったのでキャプチャフェーズに対応するのは不可能)
イベントバブルを使うとjQueryを使う意味がないと言った。

そしてjQueryで書いているコードを見たことがない、もしくは見たことあっても気づかないで
jQueryでもDOM APIと同じように書くしかないはずだ!だからjQueryを使う意味がない!と言っていた。
jQueryで(イベントバブルではなくw)イベントデリゲーションで実装してるコードを見せても
イベントバブルを使ってない!とか意味のわからないことを言った。

イベントデリゲーションこそjQueryだとDOM APIよりもシンプルに書けるコードの一つだった

こいつは脱jQueryが進んでいない現状を示しても、その事実を受け入れることができなかった
673: デフォルトの名無しさん [sage] 2020/07/24(金)10:01 ID:fMjVnhWI(23/38)
jQueryおじさん完全勝利(笑)
675: デフォルトの名無しさん [sage] 2020/07/24(金)10:13 ID:fMjVnhWI(24/38)
もう負け逃げしたようだが、
イベントバブルの一番のユースケースはこれなんだよ

<a href="link">link<span>test<span></a>

1. aのクリックイベントハンドラ
2. spanのクリックイベントハンドラ

両方のイベントハンドラを設定することができ
両方のイベントハンドラが発動する
これがwikipediaに書いてあったことの具体的な意味

そのイベント発動を行うフェーズがバブリングフェーズとキャプチャフェーズの二種類あり
バブリングフェーズにおいて下位の要素から上位の要素に伝搬することを
イベントバブリング(イベントバブル動作)という
(イベントバブルだけでは意味が不明確)
676
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:15 ID:fMjVnhWI(25/38)
>>674
まだ繰り返すのかw

> jQueryの得意とするqueryをすることがないからjQueryを使う意味がない、と言ったんだよ。

めんどくさいから突っ込まなかったことろを再掲するとかアホやなぁ
「queryをすること」ってなんだよ。どういう意味なのか言ってみ
queryしているコードを書いてみろって
677: デフォルトの名無しさん [sage] 2020/07/24(金)10:17 ID:fMjVnhWI(26/38)
先に書いてやるか
jQueryでqueryすること(意味がよくわからんが)と言われれば
普通に思いつくのは、$('#id1"') とかなわけだが

>>623で「イベントデリゲーション」を使ったコードでも
このようにqueryしてますがなにか?

https://jsfiddle.net/m8q15376/
$("#id1").on('click', 'a', function() {
 $(this).css("background", "red");
});
678
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:18 ID:fMjVnhWI(27/38)
>>674
> つまり一つのElementに複数のイベントハンドラを付けたい時にバブルを活用出来るとか、

そんなことは英語に書いてない

> To handle cases where one event(一つのイベントが) has more than one handler (一つ以上のハンドラを持っている場合), event bubbling concept can be implemented.

「一つのElementに複数のイベントハンドラを付けたい」などとは書いていない。
679: デフォルトの名無しさん [sage] 2020/07/24(金)10:20 ID:fMjVnhWI(28/38)
せっかくGoogle翻訳もしてやったのに
英語読めないなら、ちゃんと日本語も読めよ(笑)
680
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:23 ID:fMjVnhWI(29/38)
>>674
> そもそもバブルは(お前が拘っている『DOMの仕様』なのだから)jQueryとは関係なく、勝手にする物だ。

お前最初に、バブルは勝手にするものじゃなくて
親でまとめてイベント処理することだって言ってたじゃんwww

自分が使っていた用語が間違っていましたって認めたの?
683
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:44 ID:fMjVnhWI(30/38)
>>681
> そして俺が言ってるのは、親にeventhandlerを付けるのならその辺のおいしさが全くなくなる、ということだよ。

だからその親にeventhandlerを付けるコード書けって言ってるんだが?
俺はそれがすごく読みづらくなって、jQueryで書いたらシンプルになると知ってるわけ
さっさと書けよ。ここまで言って書かないのは、
お前がそれを書けないと言っているに近いが、それをお前は認めるか?
684
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:45 ID:fMjVnhWI(31/38)
>>682
> 一つのイベントが複数のイベントハンドラを持ちたい場合か。
> しかし何だそりゃ?て話だがな。

知らんのね(笑)
685
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:46 ID:fMjVnhWI(32/38)
>>682
> 逆に、本当にこのケース「一つのイベントに複数のハンドラを持たせたい為」にバブルを利用して、
> それ以外の方法では美しく実装出来ないケースがあれば確かに俺の勘違いだと認めるが、あるか?

俺の勘違いだと認めるがと言っておきながら、
wikipediaの例を出したら認めなかっただろ
嘘つきだよなw
686
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:48 ID:fMjVnhWI(33/38)
> 何度も言ってるが、俺はそれがないから「バブルを利用する=親で纏めて処理」だと思っているわけでさ。

jQueryはイベントバブルにしか対応してないから、
すべてがイベントバブルを利用してるの
親でまとめて処理してなくてもイベントバブルを利用してるの
687
(1): デフォルトの名無しさん [sage] 2020/07/24(金)10:52 ID:fMjVnhWI(34/38)
> 逆に、本当にこのケース「一つのイベントに複数のハンドラを持たせたい為」にバブルを利用して、
> それ以外の方法では美しく実装出来ないケースがあれば確かに俺の勘違いだと認めるが、あるか?

一つのイベント・・・click
それ以外の方法では美しく実装出来ないケース・・・google map

お前の勘違いだって認めようねw
691
(1): デフォルトの名無しさん [sage] 2020/07/24(金)11:12 ID:fMjVnhWI(35/38)
>>689
堂々巡りなのはお前が間違いを認めないからだろ

jQueryの話をなかったことにするな。

お前がレスするのを逃げてるのはこれだな

先に書いてやるか
jQueryでqueryすること(意味がよくわからんが)と言われれば
普通に思いつくのは、$('#id1"') とかなわけだが

>>623で「イベントデリゲーション」を使ったコードでも
このようにqueryしてますがなにか?

https://jsfiddle.net/m8q15376/
$("#id1").on('click', 'a', function() {
 $(this).css("background", "red");
});
692
(1): デフォルトの名無しさん [sage] 2020/07/24(金)11:12 ID:fMjVnhWI(36/38)
>>690
> うむ、これについて詳しくよろしく。

すでにお前は逃げてるからなw
先にお前の勘違いだったって認めろ。

先に認める文章をお前が書け
そうしたら説明してやるから
694: デフォルトの名無しさん [sage] 2020/07/24(金)11:19 ID:fMjVnhWI(37/38)
>>693
言い訳はいいからさ、>>691のコードをお前がいうコードで書き直してみろって
ここまで言って書かないのは、
お前がそれを書けないと言っているに近いが、それをお前は認めるか?

まだこれ認めてないよな?
695: デフォルトの名無しさん [sage] 2020/07/24(金)11:20 ID:fMjVnhWI(38/38)
こいつは何一つコードを書かない
俺はすでに書いている
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.840s*