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

做了一点 Demo 代码,注意函数触发,然后是 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 回答
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 回答