首页 > 解决方案 > 使用动态值检测 URL 变化

问题描述

我正在尝试检测 URL 更改,但 URL 在哈希后具有动态值,例如:http://myurl/#!/contact/179593927.

我能够完成以下工作,但http://myurl/#!/contact/仅限于,但不能在http://myurl/#!/contact/123456789.

$(window).on('hashchange', function(e){
 if (location.hash === '#!/contact/') {
    $('.controls-bar-1').appendTo('.contact-mod');
    $('.controls-bar-2').appendTo('.contact-mod');
  }
});

请指出正确的方向。

标签: jquery

解决方案


问题是因为您正在检查 URL 片段的确切值。如果您想检查该/contact部分是否存在而不管是否提供了值,您可以使用indexOf()仅检查片段的开头,如下所示:

if (location.hash.indexOf('#!/contact/') === 0) {
  $('.controls-bar-1, .controls-bar-2').appendTo('.contact-mod');
}

推荐阅读