为什么需要双重调用setPageFromHash()方法?

问题描述 投票:0回答:1

我想知道为什么我需要两次调用setPageFromHash()方法?我尝试在debugger上查看,并且addeventlistener内部的调用将我带到了最后一行-对setPageFromHash的调用。调用该方法还不够吗?我以为addEventListener内部的调用会将调试器带到第12行的函数调用。

var main = document.querySelector('main');

function showPage(name) {   var html = document.getElementById(`t-${name}`).innerHTML;   main.innerHTML = html;   }

window.addEventListener('hashchange', function() {   setPageFromHash(); });

function setPageFromHash() {   
    var hash = window.location.hash.substr(1);
     if (hash === 'about') {
    showPage('about');   } 
    else {
    showPage('home');   
 } 
}

setPageFromHash();
javascript dom javascript-events
1个回答
0
投票

您无需在addEventListener参数内调用函数。您可以只传递要在事件中调用的函数的名称:

window.addEventListener('hashchange', setPageFromHash);
© www.soinside.com 2019 - 2024. All rights reserved.