Javascript 响应 url # 部分的变化

标签 javascript jquery

我正在尝试使用 jQuery 来响应 # 之后 url 中的更改。我进行了一些搜索,但我认为我没有使用正确的搜索词。

明确地说,我希望能够像这样提供指向页面的外部链接:

<a href="example.com/foo/#home">home</a>

并包含内部链接以动态更改页面上的内容:

<a href="#site-index">site index</a>

Gmail 可以做到这一点。例如,我可以将您直接链接到您的发件箱:https://mail.google.com/mail/u/0/#sent

谢谢。

最佳答案

这是您要找的吗:

http://haineault.com/blog/37/

(function(){
  anchor = document.location.hash, handlers = [];

  jQuery.extend({
    anchorHandler: {
      add: function(regexp, callback) {
        if (typeof(regexp) == 'object') {
          jQuery.map(regexp, function(arg){
            args = {r: arg[0], cb: arg[1]};});}
        else  args = {r: regexp, cb: callback};
        handlers.push(args);
        return jQuery.anchorHandler;
      }
    }
  })(document).ready(function(){
    jQuery.map(handlers, function(handler){
      match = anchor.match(handler.r) && anchor.match(handler.r)[0] || false;
      if (match) handler.cb.apply(this, [match, (anchor || false)]);});});
})();

像这样添加触发器:

$.anchorHandler
  .add(/\#ch\-cheatsheet/,    h.comment.showCheatsheet)
  .add(/\#comment\-compose/,  h.comment.showCompose)
  .add(/\#comment\-\d+/,      h.comment.focus);

关于Javascript 响应 url # 部分的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3981090/

相关文章:

javascript - Grails 中的自动过滤列表

javascript - 如何将参数传递给模块模式

javascript - 如何确定实际显示的 CSS3 列数(相对于指定的列数)?

javascript - 使用 plupload 和 aspx 页面表单提交

javascript - jQuery Draggable 无法在特定 div 内工作

jquery - 当用户在 +y 轴和 -y 轴上滚动时,如何增加和减少 height 属性?

javascript使用对象键和值的变量

javascript - 从输入单选按钮获取平均值

jquery - Rails 部分最佳实践

javascript - 缩小版本的 jQuery 或 Prototype - JS 框架选择