Javascriptを勉強中です。
オブジェクト指向プログラミングを習得しようと努力しております。
あるHTML要素(例ではelm)にクリックイベントを付加する際、オブジェクト内のmyFuncを呼ぶのに以下のようにthis.myFuncとすると、thisがHTML要素となるためにエラーが出ます。
elm.addEventListener("click", this.myFunc, false);
これを回避する目的で
elm.addEventListener("click", (function(that) { return function() { that.myFunc(); } } )(this), false);
とオブジェクト内からクロージャを使って定義することで解決することは分かったのですが、このイベントを削除するのに、
elm.removeEventListener("click", (function(that) { return function() { that.myFunc(); } } )(this), false);
や
elm.removeEventListener("click", function() { that.myFunc(); }, false);
としても除去することが出来ません。この場合はどのようにイベントを削除することが出来るのでしょうか?
そもそもクロージャを使った定義部分に問題があるのでしょうか?
どうぞ教えていただきますようお願いいたします。
No.1
- 回答日時:
elm.addEventListener("click", (function(that) { return function() { that.myFunc(); } } )(this), false);
をやった時点でここに登録されたイベント関数は名前無しになります
素直に
elm.addEventListener("click", hoge);
function hoge(obj) {
色々;
}
elm.removeEventListener("click", hoge);
ではだめですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
setTimeoutで、止まらない
-
jquery 複数のメソッド
-
関数でy=g(x)のgとは何の略です...
-
drawImageの描画順序の指定につ...
-
jQueryの :not() .not() が有効...
-
要素名がスペースを含む場合のj...
-
idを使わずにonclickで自身の要...
-
クリックすると上に開くアコー...
-
jQueryでzipを解凍読み込みする...
-
jQueryのプラグイン「Skitter」...
-
ページ内に複数表がある場合のT...
-
ajax反映後のjqueryが動かない
-
functionから別のfunctionを実...
-
function(e)の意味を教えてくだ...
-
Javascriptの丸括弧の意味
-
javascript(jQuery)でセル内...
-
LightBoxで
-
google apps scriptの終了のさせ方
-
ジェネレーターの作り方
-
Boolean型配列中のTrueの有無を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
functionから別のfunctionを実...
-
jQueryの :not() .not() が有効...
-
jslintのエラーについて質問
-
クリックすると上に開くアコー...
-
XMLHttpRequestでキャッシュを...
-
要素名がスペースを含む場合のj...
-
phpでの文字の点滅表示
-
JAVAスクリプトで指定時間以降...
-
function(e)の意味を教えてくだ...
-
javascript(jQuery)でセル内...
-
getElementByIdを使用したグロ...
-
colorbox JS拡大時だけFlashを消す
-
jQuery|要素だけを変更できま...
-
ラジオボタン選択内容に応じて...
-
[jQuery] クリックで連番関数を...
-
処理前の「お待ちください」
-
jQueryのプラグイン「Skitter」...
-
関数名をテキストから読み込む...
おすすめ情報