小编har*_*rri的帖子

带有 HREF="#" 的元素导致页面在点击时重新加载

我有一些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)

javascript jquery

5
推荐指数
2
解决办法
4948
查看次数

使用 array_reverse PHP 反转对象

我正在尝试处理 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 向后工作?

php xml arrays rss foreach

2
推荐指数
1
解决办法
3432
查看次数

标签 统计

arrays ×1

foreach ×1

javascript ×1

jquery ×1

php ×1

rss ×1

xml ×1