HTML 标签 <a> 想要同时添加 href 和 onclick 工作

IT技术 javascript html tags onclick href
2021-01-15 02:05:10

我想问一下 HTML 标签

<a href="www.mysite.com" onClick="javascript.function();">Item</a>

如何使其成为使用hrefonClick标签(更喜欢先onClick运行然后href)

5个回答

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

<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>标签onclickhref属性的默认行为是执行onclick,然后href只要onclick不返回false,就取消该事件(或该事件未被阻止)

对我不起作用,直到我把href="#"放在那里而不是一个真正的 URL。
2021-03-18 02:05:10
有没有办法用 element.addEventListener 函数来做到这一点?
2021-03-22 02:05:10
我正在使用 laravel 框架,所以在我的刀片视图中我包含了这个,它不起作用,有人用 laravel 试过这个吗?
2021-04-05 02:05:10
如果我在 href 中的 mvc 控制器中调用了任何操作方法,则此解决方案不起作用。有人可以帮忙吗?
2021-04-09 02:05:10

使用jQuery您需要捕获click事件,然后访问网站。

$("#myHref").on('click', function() {
  alert("inside onclick");
  window.location = "http://www.google.com";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="myHref">Click me</a>

以上不是实际链接。它无法在新选项卡中打开,这是一种非常糟糕的做法。如果可以在新选项卡中打开某些内容(具有 na url),请始终添加一个有意义的href属性。
2021-04-04 02:05:10
我不会使用任何 javascript 框架。但谢谢你的回答
2021-04-06 02:05:10

要实现此目的,请使用以下 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>

这是工作示例

@Ben 我在没有 JS 的情况下对小提琴进行了测试 - 只有纯 html:<a href="http://example.com" >Item</a>并且在 Chrome 中我看到一些消息允许页面运行此链接(在 chrome url 栏的末尾发出警报)。在控制台的 safari 中,我看到警告:[阻止] fiddle.jshell.net/_display 上的页面不允许显示来自example.com 的不安全内容- 所以这可能是一些安全问题(仅在 fiddle 上?)
2021-03-25 02:05:10
这在 Chrome 中对我有用,但是 Safari 似乎运行了该功能但没有打开 href...任何建议?
2021-04-05 02:05:10

不需要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>

使用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>
仅在 AngularJS 中
2021-04-05 02:05:10