[解決済み] onclick呼び出しオブジェクトを取得するには?
2023-05-30 19:41:29
質問
の呼び出しオブジェクトにハンドラを持たせる必要があります。
onclick
イベントの呼び出しオブジェクトにハンドラを持たせる必要があります。
<a href="123.com" onclick="click123(event);">link</a>
<script>
function click123(event) {
//i need <a> so i can manipulate it with Jquery
}
</script>
を使わずに行いたいのですが
$().click
または
$().live
というように、jQueryの機能を利用しながらも、上記のような方法を用いています。
どのように解決するのですか?
で渡す
this
をインラインクリックハンドラで渡す
<a href="123.com" onclick="click123(this);">link</a>
または
event.target
を関数内で使用することも可能です(但し
W3C DOM Level 2 イベントモデル
)
function click123(event)
{
var a = event.target;
}
しかし、もちろん IEは異なる であるため、これを処理するバニラJavaScriptの方法は
function doSomething(e) {
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
}
またはあまり冗長でない
function doSomething(e) {
e = e || window.event;
var targ = e.target || e.srcElement || e;
if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
}
ここで
e
は
event object
で、IE 以外のブラウザではこの関数に渡されます。
しかしjQueryを使っているのであれば、控えめなJavaScriptを強く推奨し、イベントハンドラを要素にバインドするためにjQueryを使用することになるでしょう。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] ECMAScriptとは?
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] 変異を伴わないオブジェクトからの値の削除