Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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
Javascript Hashtag-ajax的工作不一致_Javascript_Html_Ajax - Fatal编程技术网

Javascript Hashtag-ajax的工作不一致

Javascript Hashtag-ajax的工作不一致,javascript,html,ajax,Javascript,Html,Ajax,我将在下面的页面中创建一个ajax站点。这相当直截了当,但我遇到的问题是,链接 <a href="link.html">Link</a> 将单击事件分配给链接时,是否尝试过使用preventDefault() $("nav").delegate("a", "click", function(e) { e.preventDefault(); window.location.hash = $(this).attr("href");

我将在下面的页面中创建一个ajax站点。这相当直截了当,但我遇到的问题是,链接

   <a href="link.html">Link</a>

将单击事件分配给链接时,是否尝试过使用preventDefault()

$("nav").delegate("a", "click", function(e) {
        e.preventDefault();
        window.location.hash = $(this).attr("href");
        return false;
    });

return false应该可以完成这项工作,但为了确保在我查看页面源代码时,您拥有执行此操作的代码:

$( "#menu" ).menu({

});
在它里面,你有:

location.href = link.attr( "href" );

我有一种感觉,因为这是在处理
hashchange
之外执行它,所以它被调用并覆盖(以任何方式)AJAX加载内容。如果删除/注释该行,它可能会起作用,但是,在进行此更改后,请确保您的站点仍能正常运行。

错误控制台中有任何可能导致javascript失败并允许
完成的内容吗?我正在使用bluefish并在firefox/ie中进行测试,我希望错误控制台中有一些不同寻常的东西-只是典型的css内容你可能会觉得这很奇怪,你的页面和示例页面之间的所有内容看起来都是匹配的……我会继续查找,但你在滚动到页面时看到问题了吗?我希望这不仅仅是我的笔记本电脑事实上,如果你查看页面的源代码,你有这样做的代码:
$(“#菜单”).menu({})里面有
location.href=link.attr(“href”)-如果这会覆盖它,我不会感到惊讶。这不是一个坏主意,但是如果您查看
委托
的文档页面,有很多地方显示
返回false
阻止默认行为并停止传播,正如从所有/大多数jQuery事件处理程序返回false一样。事实上,该脚本在OP获得它的示例页面上运行良好,这让我认为直接使用
preventDefault
不会产生效果,因为OP几乎完全复制/粘贴了代码。感谢stratton的输入-当我从菜单的js中删除该行时,它停止了覆盖并解决了问题。谢谢你的输入,我会保留它以备将来参考!是的,删除
location.href=link.attr(“href”)从我的js菜单解决了这个问题
location.href = link.attr( "href" );