我有一些a元素通过javascript运行函数,并且有一个#集合,href但是我最近更改了一些内容,导致这些元素尝试重新加载页面而不是什么都不做,因此破坏了它们的功能。
我可以寻找什么可能导致这种情况?
document.getElementById("link").onclick = function(){alert("do something javascript")};Run Code Online (Sandbox Code Playgroud)
<a id="link" href="#">Do Some JS</a>
Clicking this however reloads page and am unsure what i have done to cause this to reload the page.Run Code Online (Sandbox Code Playgroud)
我无法在代码片段中重现,如果我这样做了,我不会问这个问题,但某些原因导致这些链接重新加载页面,这不是预期的行为。
到目前为止,我只能思考或快速而肮脏的修复:
$('a[href="#"]')).click(function() {
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
但是,我想知道可能导致此问题出现的原因。
好的,我找到了,感谢您的帮助:
window.onpopstate = function(e){
if(e.state !== null) {
} else {
location.reload();
}
}
Run Code Online (Sandbox Code Playgroud)
那肯定会做到的。
我认为这是因为页面严重依赖于 ajax,因此无法回到原来的位置。
我认为最简单的方法是在 ajax 更改时更新 url,因此当我单击返回时,url 将更改为最后一个操作,然后导致页面在弹出状态更改时正确重新加载。
我将代码更改为:
window.onpopstate = function(e){
if(e.state !== null) {
} else …Run Code Online (Sandbox Code Playgroud) 我正在尝试处理 RSS 提要,但想反向执行,以便最后导入最新项目以保持顺序正确。
$content = file_get_contents($feed_url);
$rss = new SimpleXmlElement($content);
$rss = array_reverse($rss);
foreach($rss->channel->item as $entry) {
echo $entry->title;
}
Run Code Online (Sandbox Code Playgroud)
然而上面只是抛出array_reverse() expects parameter 1 to be array&Invalid argument supplied for foreach()错误。我怎样才能反转数组,以便 for each 向后工作?