Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 我想要相同的函数以两种方式反应_Javascript_Jquery - Fatal编程技术网

Javascript 我想要相同的函数以两种方式反应

Javascript 我想要相同的函数以两种方式反应,javascript,jquery,Javascript,Jquery,我有一个函数,当location.hash()被更改时,它会隐藏/显示一个按钮 window.addEventListener("hashchange", function() { //some method to toggle a button }) 但是我发现当用户刷新页面而不是单击链接进入单个页面时,它不会执行 所以我试着把它放在一个.ready()中,但仍然 $(document).ready(function() { window.addEventLis

我有一个函数,当
location.hash()
被更改时,它会隐藏/显示一个按钮

window.addEventListener("hashchange", function() {
     //some method to toggle a button
})
但是我发现当用户刷新页面而不是单击链接进入单个页面时,它不会执行

所以我试着把它放在一个
.ready()
中,但仍然

$(document).ready(function() {

         window.addEventListener("hashchange", function() {
         //some method to toggle a button
    })
        });

但是当用户刷新页面时,它似乎不会执行

如果您想在页面重新加载时触发函数,请将该函数编写为一个真实的命名函数(而不是事件处理绑定调用中的匿名函数),然后直接调用该函数。问题是我需要它以两种方式执行谢谢,似乎我最好还是坚持使用javascript而不是Jquery。@anson920520如果你已经在应用程序中的任何地方出于某种原因使用了Jquery,那么最好使用它,因为$(document).ready()对不支持
DOMContentLoaded
事件的浏览器有回退功能。所以第一个看起来是这样的:
$(document).ready(toggleButton)
。再次感谢,似乎这些浏览器确实支持我需要介绍的浏览器:,所以我现在还是坚持使用js。虽然公平地说,现在没有浏览器不再支持js,因为微软已经停止支持IE10及以下版本,除了Windows Vista SP2用户,这是一个太小的部分,不需要关心。
function toggleButton() {
  // Some method to toggle a button
}

document.addEventListener("DOMContentLoaded", toggleButton);
window.addEventListener("hashchange", toggleButton);