jQuery检测元素是否已链接到

时间:2018-03-25 21:43:27

标签: javascript jquery hyperlink

我想将一个jQuery事件处理程序附加到<div>元素,这样无论何时单击指向此<div>的链接,该处理程序都会被激活并执行相关的函数 - 无论是指向<div>的链接(同一页面,其他页面,其他网站)的位置。

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

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

1 个答案:

答案 0 :(得分:1)

你想要的是非常具体和边界可撤销的。我认为您最好的选择是检测网址中的哈希更改并采取相应措施。

您无法检测到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 - 点击该链接,注意网址中的哈希值是如何变化的。

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>