Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 返回按钮上的jQuery查找散列标记并激发单击事件_Php_Javascript_Jquery_Ajax - Fatal编程技术网

Php 返回按钮上的jQuery查找散列标记并激发单击事件

Php 返回按钮上的jQuery查找散列标记并激发单击事件,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我正在开发我的网站,允许人们发布类似于twitter的内容,并试图通过jQuery/Ajax使其更加精简。人们可以选择发布许多类别,每个类别都按主类别或部分(如果愿意)进行组织 每次用户单击左侧导航面板中的某个部分时,该项都会上移到列表顶部并向下展开,显示该部分中的所有类别。发生的另一件事是主内容区域淡出,用户发布的新内容属于该部分和类别。到目前为止,这一切进展顺利,看起来棒极了 但是,假设您单击某个部分和类别以查看该特定类别中的所有帖子。然后你点击一篇文章进入文章的内部,查看所有信息、评论等。

我正在开发我的网站,允许人们发布类似于twitter的内容,并试图通过jQuery/Ajax使其更加精简。人们可以选择发布许多类别,每个类别都按主类别或部分(如果愿意)进行组织

每次用户单击左侧导航面板中的某个部分时,该项都会上移到列表顶部并向下展开,显示该部分中的所有类别。发生的另一件事是主内容区域淡出,用户发布的新内容属于该部分和类别。到目前为止,这一切进展顺利,看起来棒极了

但是,假设您单击某个部分和类别以查看该特定类别中的所有帖子。然后你点击一篇文章进入文章的内部,查看所有信息、评论等。。现在,你想回到你原来的位置,所以你按下了后退按钮。现在执行此操作时,它将返回并再次显示主页详细信息,而不是以前选择要查看的类别

我添加了以下代码来显示哪个类别是selectexample://community,并检查散列,然后触发click事件以再次显示该类别

last_known_hash = location.hash;
window.setInterval(function() {
    if(last_known_hash != location.hash) {
        $('#categories-panel a[name="'+ location.hash.substring(2) +'"]').click();
        last_known_hash = location.hash;
    }
}, 500);
单击“上一步”时,它仍会在URL中显示/社区,但不会触发单击。这很奇怪,因为如果在URL中键入/community,它确实可以正常工作。所以我真的不确定为什么点击“后退”时它没有被正确触发。我不确定这是否是做这件事的最佳/正确方式,但这是我目前所能想到的。也许改做一个疗程?如往常一样,任何帮助都将不胜感激:

另外,我知道点击事件本身就可以工作,因为当我在firebug中运行它时,它可以完美地工作



小结:当有人在浏览器中单击返回时,我需要它转到他们上次所在的位置,示例:sitehere.com//community-然后触发单击事件,再次显示社区类别内容。

我认为此插件:解决您的问题

我认为此插件:解决您的问题

historyJS和HTML5历史popState和pushState。这些是您需要学习的术语,以完成您正在尝试的任务。

historyJS和HTML5 history popState和pushState。这些都是你需要学习的术语,来做你想做的事情。

要找到实际可行的/可回答的问题有点难,也许你可以在最后总结一下?半相关的,也许是你需要的东西吧?补充了一个总结,希望对你有所帮助!如果不让我知道。我还试图远离HTML5,因为有太多的浏览器根本不支持它。SetInterval总是有等待的问题。应该用回调来代替…有没有用回调来代替的例子?很难找到实际的/可回答的问题是,也许你可以在最后总结一下?半相关的,也许是你需要的东西吧?补充了一个总结,希望对你有所帮助!如果不让我知道。我还试图远离HTML5,因为有太多的浏览器根本不支持它。SetInterval总是有等待的问题。应该使用回调来代替…有没有使用回调的例子?有没有其他方法?我试图远离HTML5,因为有太多的浏览器还不支持它。这就是为什么我要尝试好的ol'hash方法,哈哈。你应该使用HTML5和HistoryJS。。。historyJS是为不支持pushState和popState的浏览器制作的polyfill。两者都使用很重要,因为你也希望确保渐进性增强。啊,我不知道。我注意到github使用了这种方法,但它在IE中仍然不起作用?这应该在IE中起作用。HistoryJS是为IE而构建的,不是专门为非html5浏览器而构建的。只是需要开始为两者开发,并确保historyJS的东西可以在以后的代码中被弃用,而不会有太多的痛苦。那么……我想我应该复习一下HTML5,哈哈。谢谢。你有没有建议学习整个HTML5+HistoryJS组合的地方?还有其他方法吗?我试图远离HTML5,因为有太多的浏览器还不支持它。这就是为什么我要尝试好的ol'hash方法,哈哈。你应该使用HTML5和HistoryJS。。。historyJS是为不支持pushState和popState的浏览器制作的polyfill。两者都使用很重要,因为你也希望确保渐进性增强。啊,我不知道。我注意到github使用了这种方法,但它在IE中仍然不起作用?这应该在IE中起作用。HistoryJS是为IE而构建的,不是专门为非html5浏览器而构建的。只是需要开始为两者开发,并确保historyJS的东西可以在以后的代码中被弃用,而不会有太多的痛苦。那么……我想我应该
last_known_hash = location.hash;
window.setInterval(function() {
    if(last_known_hash != location.hash) {
        $('#categories-panel a[name="'+ location.hash.substring(2) +'"]').click();
        last_known_hash = location.hash;
    }
}, 500);
学习HTML5,哈哈。谢谢。你有没有建议学习整个HTML5+HistoryJS组合的地方?