包括href和onclick到HTML< a>标记

brgchamk  于 2023-03-06  发布在  其他
关注(0)|答案(7)|浏览(148)

如果我有这个元素:

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

如何使hrefonClick都工作,最好先运行onClick

34gzjxbg

34gzjxbg1#

您已经有了所需的内容,只是语法稍有变化:

<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,然后只要onclick不返回false就执行href,取消事件(或者事件未被阻止)

zd287kbt

zd287kbt2#

使用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>
m1m5dgzv

m1m5dgzv3#

要实现这一点,请使用以下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>

这里是working example

9vw9lbht

9vw9lbht4#

不需要jQuery。
Some people say using onclick is bad practice...
这个例子使用纯浏览器javascript,默认情况下,click处理程序会在导航之前求值,所以如果你愿意,你可以取消导航,自己做。

<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>
gt0wga4j

gt0wga4j5#

使用<button>代替。一般来说,你应该只使用超链接来导航到一个真正的URL。
我们可以设计一个按钮,使其看起来像一个锚元素。
来自www.example.comhttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#onclick_events
锚元素经常被滥用为假按钮,通过将其href设置为#或javascript:void(0)来阻止页面刷新,然后监听其点击事件。
当复制/拖动链接、在新选项卡/窗口中打开链接、添加书签时,或者当JavaScript加载、出错或被禁用时,这些虚假的href值会导致意外行为。它们还会向辅助技术(如屏幕阅读器)传递不正确的语义。

bkkx9g8r

bkkx9g8r6#

接受的答案对我不起作用。但是,阻止a href的默认行为,然后“手动”跟随链接,确实起作用了。
代码示例如下所示:

<a href="https://example.com" onClick="myFunction(event)">Link</a>
<script>
function myFunction(event) {
    event.preventDefault();
    // do your thing here
    window.location.href = event.currentTarget.href;
}
</script>
ulmd4ohb

ulmd4ohb7#

使用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>

相关问题