ホームページ > 記事 > ウェブフロントエンド > 複数のオブジェクトとメソッドをバインドする際のフラグと jq
jquery の関数の $(this) が $(e.target) と等しくないのはなぜですか?
//html中有个按钮: <button id="myBtn">我的按钮</button> <script> $('#myBtn').click(function(e){ console.log($(this)); console.log($(e.target)); console.log($(this)==$(e.target)); }); </script>
// $(this) と $(e.target) が判明しました
// コンソールに出力される内容は全く同じです
// ただし、この 2 つは等しくありません
これらは jq 2 つのオブジェクトを使用して構築されているため、最後のステップで比較するときに、2 つのオブジェクトの内容がまったく同じであっても、オブジェクトの比較ではポインターが比較されます。 2 つのポインターは異なるため、待ちたくないのです。簡単に言うと、
var a = new Object(); var b = new Object();
==これら 2 つのオブジェクトはまったく同じに見えますが、それでも比較結果を待ちたくないのです= =
正しい結果が得られるように、これを == e.target を直接比較してください==
上記の flag と jq の複数のオブジェクトとメソッドのバインドに関するこの記事は、エディターによって共有されるすべての内容であると思います。ぜひ参考にしてください。PHP 中国語 Web サイトをサポートしていただければ幸いです。
複数のオブジェクトとメソッドのバインドに関するフラグと jq に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。