Javascript 单击锚元素时:是否在目标元素上触发任何事件?

Javascript 单击锚元素时:是否在目标元素上触发任何事件?,javascript,jquery,html,anchor,Javascript,Jquery,Html,Anchor,我面临以下问题: 我有一个锚元素 和目标元素内容 我要做的是调用在目标元素上定义的方法 此标准的原因基于调用方法的需要,即使链接来自另一个子页面 在研究之前,我的第一个想法是内容事件,但这不会触发 然后我开始研究 及 以及ofc。但是我没有找到任何相关的帖子(可能是因为关于“如何触发元素的点击事件”的问题太多了) 我很欣赏任何想法,花一些时间:(倾听hashchange事件,然后在目标事件上触发您自己的自定义事件 $(document).on("hashchange", function() {

我面临以下问题:

我有一个锚元素
和目标元素
内容

我要做的是调用在目标元素上定义的方法

此标准的原因基于调用方法的需要,即使链接来自另一个子页面

在研究之前,我的第一个想法是
内容
事件,但这不会触发

然后我开始研究 及 以及ofc。但是我没有找到任何相关的帖子(可能是因为关于“如何触发元素的点击事件”的问题太多了)


我很欣赏任何想法,花一些时间:(

倾听
hashchange
事件,然后在目标事件上触发您自己的自定义事件

$(document).on("hashchange", function() {
    $(window.location.hash).trigger("linkedto");
});

$("#target1").on("linkedto", function() {
    ...
});

您可以在
数据方法
属性中为每个元素设置方法的函数名(以避免将该方法定义为HTML元素本身的自定义属性,因为可能会产生副作用,有些人认为这是一种不好的做法)

然后听
hashchange
事件和页面加载,找到与当前哈希值对应的元素并调用其方法。注意:我使用
this
而不是
window
来调用方法函数,以便不确定范围

//当页面跳转到元素时要调用的方法:
函数contentElementMethod(){
log(“哈希对应于#content元素!”);
}
//用于获取与当前位置哈希对应的元素并调用其[data method]属性中定义的方法的处理程序
函数hashElementHandler(){
if(!window.location.hash)return;//我们不希望在没有位置哈希设置时触发找到的第一个方法,例如,当页面加载时没有设置位置哈希
var hashEl=document.querySelector(window.location.hash+'[data method]');
if(hashEl){
这个[hashEl.getAttribute('data-method')]();
}
}
//侦听哈希更改事件
addEventListener(“hashchange”,hashElementHandler);
//还要检查页面加载时的页面哈希(包装此
addEventListener('DOMContentLoaded',hashElementHandler);


内容
我不认为目标元素上触发了任何事件。也许你应该使用
hashchange
事件?单击链接不会关注目标,它只是滚动到目标。我考虑了与目标元素到达视图相关的滚动事件,但如果我需要,这很快就会失控在多个目标元素上单击,然后检查当前哈希值。我将尝试
hashchange
事件,稍后报告