150
4

5 回答 5

267

你已经有了你需要的东西,只需要稍微改变一下语法:

<a href="www.mysite.com" onclick="return theFunction();">Item</a>

<script type="text/javascript">
    function theFunction () {
        // return true or false, depending on whether you want to allow the `href` property to follow through or not
    }
</script>

<a>标签onclick和属性的默认行为href是执行onclick,然后href只要onclick不返回false,就取消事件(或事件未被阻止)

于 2013-02-14T04:01:44.973 回答
11
于 2013-02-14T04:01:46.253 回答
8

要实现这一点,请使用以下 html:

<a href="www.mysite.com" onclick="make(event)">Item</a>

<script>
    function make(e) {
        // ...  your function code
        // e.preventDefault();   // use this to NOT go to href site
    }
</script>

这是工作示例

于 2018-07-01T20:01:39.910 回答
6

不需要 jQuery。

有人说使用onclick是不好的做法...

此示例使用纯浏览器 javascript。默认情况下,单击处理程序似乎会在导航之前进行评估,因此您可以取消导航并根据需要自行处理。

<a id="myButton" href="http://google.com">Click me!</a>
<script>
    window.addEventListener("load", () => {
        document.querySelector("#myButton").addEventListener("click", e => {
            alert("Clicked!");
            // Can also cancel the event and manually navigate
            // e.preventDefault();
            // window.location = e.target.href;
        });
    });
</script>
于 2020-03-19T16:52:58.187 回答
-4

ng-click代替onclick. _ 就这么简单:

<a href="www.mysite.com" ng-click="return theFunction();">Item</a>

<script type="text/javascript">
function theFunction () {
    // return true or false, depending on whether you want to allow 
    // the`href` property to follow through or not
 }
</script>
于 2018-10-21T01:24:55.713 回答