我想将 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/