首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何利用已有的onclick功能获取锚点

如何利用已有的onclick功能获取锚点
EN

Stack Overflow用户
提问于 2018-06-29 20:57:18
回答 2查看 497关注 0票数 -3
代码语言:javascript
复制
<div class="shareThis">
    //3rd party code start//
    <div class="social">
        <a href='https://www.google.com/' onClick='onclick()' data-provider='Abhishek'>test</a>
    </div>
</div

  • 我想捕获锚标签的点击事件
  • 这个锚标签不是由我的代码控制的,而是由第三方库添加的,所以当用户点击这个锚标签时,我不能修改锚标签
  • ,它的onclick函数应该是按原样工作的。除此之外,我还可以捕获click事件并获取数据提供程序属性值。

想要获取数据提供程序的值。

EN

回答 2

Stack Overflow用户

发布于 2018-06-30 04:59:54

只需为click事件添加您自己的事件处理程序,然后在那里做您想做的事情。

您声明锚点标记是由您无法控制的脚本动态添加的。因此,我建议您将单击处理程序设置为处理程序。

代码语言:javascript
复制
document.body.addEventListener('click', function (e) {
    var target = e.target;

    if ( !(target.tagName.toLowerCase() === 'a' && target.dataset.provider !== undefined)) {
        return; // not an anchor and doesn't have a data-provider, exit the handler
    }

    // since we're here, target must be an anchor with a data-provider attribute.
    // do something with it
    var provider = target.dataset.provider;
    // your code here?
    console.log('Delegated handler running... Provider is: ', provider);
}, false); // setting useCapture to false

window.onclick = function (e) {
  // dummy function to stub the actual 3rd party function
  // and to prevent any actual navigation
  console.log('3rd-party function running...');
  e.preventDefault();
  e.stopPropagation();
  return false;
}
代码语言:javascript
复制
<div class="shareThis">
    <!-- 3rd party code start -->
    <div class="social">
        <a href="http://www.example.com" onlick="onclick()" data-provider="Abhishek">Some Link</a>
    </div>
</div>

票数 0
EN

Stack Overflow用户

发布于 2018-07-01 04:58:18

尝试捕获点击<div class="social">而不是锚标签。这样,一旦单击abc.com,就可以捕获锚标签事件。

代码语言:javascript
复制
document.getElementsByClassName('social')[0]
  .addEventListener('click', function(event) {
    alert("You captured anchor tag event")
  });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div class="shareThis">
//3rd party code start//
  <div class="social">
  <a onlick='onclick()' data-provider='Abhishek'>abc.com</a>
 
 </div>
 </div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51102317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档