5

クリックイベントで実行する必要がある関数があります。ただし、アンカー タグの onclick 属性では問題なく動作しますが、HREF 属性では動作しません。それは未定義のIDを与えています。ここにデモコードがあります

HTML

<a href="javascript:test(this)" id="first">click</a>

JS

function test(obj){
alert(obj.id)
}
4

5 に答える 5

3

thisそのコンテキストではwindow、コントロールではなく です。に JavaScript を配置することhrefは、 のようなイベント ハンドラと同じではありませんonclick。ここにフィドルがあります。

于 2013-09-20T18:55:25.400 に答える
3

ここに修正があります:

<a href="#" onclick="javascript:test(this);" id="first">click</a>
于 2013-09-20T18:56:37.593 に答える
2

この質問にはすでに回答がありますが、質問で使用した関数を使用する場合は、次のように使用する必要があります

HTML:

<a href="http://heera.it" onclick="return test(this.id)" id="first">click</a>

JS:

function test(obj){
    alert(obj);
    return false; // this is required to stop navigation to that link
}

注意、この例のようreturn falseに値がある場合は使用する必要がありますが、この理由でまたはのような他のオプションがあります。hrefreturn falseevent.preventDefault()event.returnValue = false (for IE)

デモ。別のデモ(なしreturn false)。MDN でこのキーワードについて読んでください。

于 2013-09-20T19:09:55.330 に答える
0

Matt Kruse の Javascript Best Practices の記事を楽しみました。その中で彼は、hrefセクションを使用してJavaScriptコードを実行するのは悪い考えだと述べています。

アンカーで javascript を呼び出すためのいくつかの良い方法を次に示します。

<a href="javascript:;" onClick="return DoSomething();">link</a>
<a href="javascript:void(0);" onClick="return DoSomething();">link</a>
<a href="#" onClick="return DoSomething();">link</a>
于 2013-09-20T18:54:11.820 に答える
0

アンカータグの onclick イベントを使用します。この内部の href は現在のウィンドウを表します。

于 2013-09-20T18:58:37.863 に答える