繁体   English   中英

使用jquery将onClick事件附加到锚标记?

[英]Append an onClick event to an anchor tag using jquery?

我正在尝试将onClick事件添加到锚标记...

以前我有......

<a href="somlink.html" onClick="pageTracker._link(this.href); return false;">

但我试图避免内联onClick事件,因为它干扰了另一个脚本..

所以使用jQuery我正在尝试以下代码...

<script>
    $(document).ready(function() {
      $('a#tracked').attr('onClick').click(function() {window.onbeforeunload = null;
        pageTracker._link(this.href); 
        return false;
      });
    });
</script>

使用html,如<a id="tracked" href="something.html">

所以我的问题是这应该是有效的,如果不是最好的解决方案是什么?

正确的方法是(对于jQuery)

$('#tracked').click(function() {
    pageTracker._link($(this).attr('href'));

    return false;
});

这将在具有跟踪id的任何元素上添加“onclick”事件。 那里你可以做任何你想做的事。 点击事件发生后,第一行将点击元素的href属性传递给pageTracker。

至于你原来的问题,它不会工作,它会引发未定义的错误。 attr的工作方式有点不同。 文档 你使用它的方式,将返回属性的值,我认为在那种情况下它不可链接 如果您希望按照它的方式保留它,它应该如下所示:

$('#tracked').click(function() {
    $(this).attr('onclick', 'pageTracker._link(this.href); return false;');

    return false;
});

你也可以试试

var element1= document.getElementById("elementId");

然后

element1.setAttribute("onchange","functionNameAlreadyDefinedInYourScript()");   

//这里我试图设置element1的onchange事件(一个下拉列表)重定向到一个函数()

我昨天花了一些时间。 事实证明,我需要在$(window).ready not $(document).ready上包含jQuery。

$( window ).ready(function() {
  $('#containerDiv a').click(function() {
    dataLayer.push({
      'event': 'trackEvent',
      'gtmCategory': 'importantLinkSimilarProperties',
      'gtmAction': 'Click',
      'gtmLabel': $(this).attr('href')
    });
  });
}); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM