1

私はオンラインで探していましたが、私の質問に対する直接的な答えを見つけることができませんでした:

タグに onClick を使用できますか?

言い換えれば、これを行うことができますか(phpを介してエコーされたメモ)?

echo "<a href=\"#\" id =\"loginbutton\" onClick=\"counter()\"></a>\n";

これを実行しようとしましたが、リンクをクリックすると、カウンター関数が呼び出されません。

私のコードスニペットの残りの部分:

echo "<script type=\"text/javascript\" src=\"src\jquery\jquery.js\">\n";
echo "function counter(){\n";
echo "alert(\"HELLO WORLD!\");\n";
echo "}\n";
echo "</script>\n";

echo "<a href=\"#\" id =\"loginbutton\" onClick=\"counter()\"></a>\n";
4

3 に答える 3

2

それは機能するはずですが、イベントをインラインでバインドしないことをお勧めします。addEventListener古いバージョンの IE を調べることをお勧めしattachEventます。これらの詳細については、次のトピックを参照してください: addEventListener() / attachEvent() の正しい使用法?

ウィンドウの準備が整うのを待つ場合は、要素がページ上にあり、アクセスできるように定義されていることを確認します。

window.onload = function(){
   //add any event listeners using the above methods in here
}

<script>
    window.onload = function(){
      var t = document.getElementById("test");
      t.addEventListener("click", sayHi, false);

      function sayHi(){
       alert("Hi");
      }    
    }

</script>    

<div id="test">test</div>​

上記のエコーステートメントによると、そのように機能させることに決めた場合は、これを試すことができます:

echo "<script type='text/javascript' src='src/jquery/jquery.js'></script>\n";
echo "<script>\n"
echo "function counter(){\n";
echo "alert('HELLO WORLD!');\n";
echo "}\n";
echo "</script>\n";
echo "<a href='#' id ='loginbutton' onClick='counter()'></a>\n";

jQuery を含むスクリプト タグを閉じ、そのすぐ下に新しい開始タグを追加したことに注意してください。

編集

(src 属性を介して) 外部リソースを参照するスクリプト タグは、タグ自体に埋め込まれたスクリプトを実行できなくなりました。

詳細はこちら

于 2012-11-08T14:24:38.863 に答える
0

上記のコメントにさらにコンテキストを追加するために、ここに実際の例を示します。エコーのシミュレートに関する HTML コメントを入れたところに、PHP のエコー行を入れてください。return false; を追加したことにも注意してください。これにより、デフォルトのリンク クリック動作が実行されなくなります。href が「#」であるため、URL に「#」を追加するように URL が変更されるため、ブラウザの [戻る] ボタンを使用すると、同じページで「スタック」したままになります。

http://jsfiddle.net/6pEbJ/

<html>
    <head>
        <script type="text/javascript">
            function connect()
            {
            alert('connected!');
            }
        </script>
    </head>
    <body>
        <!-- simulated echo result here -->
        <a href="#" onclick="connect(); return false;">Testing</a>
    </body>
</html>
于 2012-11-08T14:22:57.137 に答える
0

少しデモ コードを作成しました。関数が起動し、次に href が続くことに注意してください。false を返すことで、JS でこれをオフにすることができます。

<script type="text/javascript">
    function counter() {
        alert("do something here")

        var FollowHref_Or_Not = false;
        // true would simply follow the href after the function is activated
        return FollowHref_Or_Not;
    }
</script>
<a href="/" onclick="return counter()">Test Link</a>
于 2012-11-08T14:20:23.057 に答える