我想将一个jQuery事件处理程序附加到<div>
元素,这样无论何时单击指向此<div>
的链接,该处理程序都会被激活并执行相关的函数 - 无论是指向<div>
的链接(同一页面,其他页面,其他网站)的位置。
$("div#mydiv").on("linked_to", function(){ //is there a "linked_to" event?
//do something about it
});
这可能吗?可以scrollIntoView()
使用吗?
答案 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>