Javascript 在活动锚点上运行函数

Javascript 在活动锚点上运行函数,javascript,jquery,html,css,jquery-events,Javascript,Jquery,Html,Css,Jquery Events,我是jQuery新手,如果设置了div的锚id,我想突出显示div 我目前有这个结构,它只适用于网页加载与有效的锚连接 $(document).ready(function(){ var divpost = window.location.hash.substr(1); if($.isNumeric(divpost)){ $('#reply_' + divpost).css('background-color', '#EDA2FF'); } }); 这仅

我是jQuery新手,如果设置了div的锚id,我想突出显示div

我目前有这个结构,它只适用于网页加载与有效的锚连接

$(document).ready(function(){
    var divpost = window.location.hash.substr(1);
    if($.isNumeric(divpost)){
        $('#reply_' + divpost).css('background-color', '#EDA2FF');
    }
});

这仅适用于带有设置锚的页面加载。如何使其更具动态性,以便在锚更改时执行脚本?

您可以将其设置为函数,并在每次更新时调用它

function updateAnchors() {
    var divpost = window.location.hash.substr(1);
    if($.isNumeric(divpost)){
        $('#reply_' + divpost).css('background-color', '#EDA2FF');
    }
}
然后在加载更多锚点时调用
updateAnchors()

jQuery可以挂接到,因此您可以执行以下操作:

$(window).on('hashchange', function(e){
    var divpost = window.location.hash.substr(1);
    if($.isNumeric(divpost)){
        $('#reply_' + divpost).css('background-color', '#EDA2FF');
    }
});

所以如果我理解的话,我会通过onClick来称呼它,对吗?或者如果锚点发生变化,是否有方法调用它?确切地说,使用
$(window).on('hashchange',function(){/..work..})
或者像@miken32那样,没有拆分函数和散列更改:)谢谢!我在搜索锚时没有找到这个。请注意,您还需要添加逻辑以将不再匹配的div返回到默认颜色。