【问题标题】:Jquery calling function on hashchangehashchange上的jquery调用函数
【发布时间】:2011-06-30 04:54:24
【问题描述】:

我有两个问题

  1. 我正在使用 hashchange 插件....所以我想知道是否会在每次 hashchange 发生时调用如下函数...因为我的代码中有类似的东西并且代码函数显然没有被称为

    $(document).ready(function()
    {
        // function here
    });
    
  2. 另一方面,如果我删除 hashchange,如如果我将 http://abc.com/a.htm#http://abc.com/b.htm 设为 http://abc.com/b.htm 代码运行良好

问题是我的页面结构有点不同......这是页面结构的小提琴,它在更高级别上解释了我试图实现的jsfiddle.net/vBKWd/9......关于哈希更改只是我的第 1 页上的 div c 被第 2 页替换,反之亦然....并且我在下面显示的 js 函数仅被调用一次,而不是在 hashchange 之后调用

或者有什么方法可以将函数与 div 绑定,以便每当 div 被替换时,函数就会被调用?

【问题讨论】:

  • 您的示例没有传达任何信息。也许添加更多细节?
  • 可以看看你的函数代码吗?
  • @amosrivera 该函数工作得非常好......问题是它在页面加载时被调用一次但不是在哈希更改时......

标签: javascript jquery jquery-plugins hashchange


【解决方案1】:

不,ready 处理程序仅在文档准备好时调用,而不是在哈希更改时调用。您应该为此使用 hashchange 事件,而不是:

$(window).hashchange(function () {
    // function here
});

示例:http://jsfiddle.net/vBKWd/2/

【讨论】:

  • “没用”...你能描述得更详细一点吗?也许会产生一个它不起作用的 JSFiddle 示例?你是说hashchange 上没有调用代替// function here 的代码,或者“没有工作”是否意味着别的?
  • @Domenic ... 有什么方法可以将函数与 div 绑定,这样每当 div 被替换时,函数就会被调用?
  • 我不明白;您是否正在使用 cmets 提出一个完全独立的问题?我建议为此提出一个新问题,如果已经回答,则将其标记为已回答,或者如果您不关心答案,则将其删除。
  • @Domenic 很抱歉没有描述性......是的,这里的 //function 不是在哈希更改时调用的......而且我没有在评论中问另一个问题......问这个问题的原因是 hashchange 函数替换了 div 所以如果你可能知道任何可能触发 div 更改的函数可以完成这项工作....我会正确地为此做一个小提琴...无论如何谢谢努力+1
  • 没有触发 om div 更改的函数。你可以使用现有的 jquery 函数trigger(function1()) 自己制作。
【解决方案2】:

在下面的文档就绪写代码中

$(window).bind('hashchange', function () {
                 //code here
});

【讨论】:

    【解决方案3】:

    在这种情况下使用live

    $(document).ready(function()
    {   
       $(selector).live(hashchange, function(){
        // your code goes here
    
        });
    });
    

    【讨论】:

    • 问题是我的页面结构有点不同......这是页面结构的小提琴,它在更高级别上解释了我想要实现的jsfiddle.net/vBKWd/9 ...在哈希更改上,我的第 1 页上的 div c 被第 2 页替换,反之亦然....并且我在下面显示的 js 函数仅被调用一次,而不是在 hashchange 之后被调用...这有帮助吗?跨度>
    • ReferenceError: hashchange is undefined。此外,live"hashchange" 无效,hashchange 事件不能应用于非window 对象。 -1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多