javascript - jQuery 检测元素是否已链接

标签 javascript jquery hyperlink

我想将 jQuery 事件处理程序附加到 <div>元素,以便每当单击指向此 <div> 的链接时,该处理程序被激活并执行关联的函数 - 无论指向 <div> 的链接位置(同一页面、其他页面、其他站点)如何.

$("div#mydiv").on("linked_to", function(){ //is there a "linked_to" event?
  //do something about it
});

这可能吗?可以scrollIntoView()会被使用吗?

最佳答案

你想要的东西非常具体,而且几乎是不可撤销的。我认为最好的办法是检测 URL 中的哈希更改并采取相应措施。

您无法检测到 div#mydiv 本身被点击,但检测哈希值 #mydiv 已经非常接近了。

你会使用类似的东西:

  window.onhashchange = function() {
    if (window.location.hash === '#mydiv') { // here you check if it was `#mydiv`
      alert('hey! are you after mydiv?!')
    }
  }

在此处查看示例:http://output.jsbin.com/pikifov - 单击链接并注意 URL 中的哈希值如何变化。

来源JSBin above here .

完整代码:

<div id="mydiv">mydiv</div>

<hr>

<a href="#mydiv">Click to go to mydiv</a>

<script>
  window.onhashchange = function() {
    if (window.location.hash === '#mydiv') {
      alert('hey! are you after mydiv?!')
    }
  }
</script>

关于javascript - jQuery 检测元素是否已链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49481251/

相关文章:

javascript - 正则表达式匹配 URL 末尾的文件名

javascript - 添加/删除值以在单击时输入

javascript - 我怎样才能获得点击的链接href?

html - 如何导航到页面的某个部分

javascript - 如何在没有 jQuery 的情况下将 JavaScript 函数添加到 DOM 对象?

javascript - 对本地主机上的 Neo4j 数据库进行 AJAX 请求时没有 'Access-Control-Allow-Origin' 错误

javascript - 循环内的 AJAX 调用

html - 为什么 .css 文件没有改变字体系列?

javascript - 仅在滚动时播放循环的 css 动画 - 滚动停止时停止

Javascript:如果对象内另一个元素高于 X 像素,则为该元素添加边距。页面上有多个对象