0

リンクをクリックして関数をトリガーしようとしていますが、うまくいきません。

これは、<button>または<p>タグなどで機能しますが、リンクでは機能しません。

<a href="#" onclick="search()">click me</a>
<button onclick="search()">clickity</button>

JavaScript 関数:

function search()
{
    alert("hello");
    return false;
}
4

1 に答える 1

2

これは、リンクに関数ではないaという名前のプロパティがあるためです。.search

インライン ハンドラーを割り当てると、要素のプロパティは変数としてアクセスできるようになるため、.searchプロパティ/変数はグローバルsearch()関数をシャドーイングします。

名前を変更するだけで機能します。

<a href="#" onclick="mysearch()">click me</a>

function mysearch() {
    alert("hello");
    return false;
}

windowまたは、オブジェクトから直接グローバル関数にアクセスすることもできます。

<a href="#" onclick="window.search()">click me</a>

buttonボタンにはそのプロパティがないため、で機能します。

于 2013-06-17T15:35:47.310 に答える