Javascript 为什么我的onClick函数需要点击两次

Javascript 为什么我的onClick函数需要点击两次,javascript,css,onclick,Javascript,Css,Onclick,我从我的几个不同的项目中注意到,每当我单击我添加了onClick函数的内容时,总是需要两次单击才能在新加载页面时启动它们。我为他们使用的一般结构是: function PageChange(){ var welc_p = document.getElementById("welcome");/**gathers page DIVs**/ var page01 = document.getElementById("page01"); var page02 = docume

我从我的几个不同的项目中注意到,每当我单击我添加了onClick函数的内容时,总是需要两次单击才能在新加载页面时启动它们。我为他们使用的一般结构是:

function PageChange(){

    var welc_p = document.getElementById("welcome");/**gathers page DIVs**/
    var page01 = document.getElementById("page01");
    var page02 = document.getElementById("page02");

    var start = document.getElementById("start_btn");/**gathers buttons**/
    var p1_back = document.getElementById("p1_back");
    var p1_next = document.getElementById("p1_back");

    var p2_back = document.getElementById("p2_back");
    var p2_next = document.getElementById("p2_back");

    start.onclick=function(){
        page01.style.display="block";
        welc_p.style.display="none";
        window.location="#page01";
        };

    }/**function**/
那么我在html中调用它的方式是

<div class="some_class" id="start_btn" onClick="PageChange()">!!!LETS GET STARTED!!!</div>
这里还有一把小提琴。


这通常是我每次创建此功能时的结构。我在这里看到过很多关于他们的项目需要点击两下才能激活的帖子,但是他们中没有一个做的事情接近我想要完成的,而且他们的问题似乎在他们的编码中。有人知道为什么会发生这种情况吗?

这是因为在单击按钮时,您正在将a附加到按钮上。 这意味着只需单击按钮即可激活事件处理程序,而不是start.onclick=函数中的代码{ 然后,第二次单击起作用,因为事件处理程序已经激活,现在代码将运行


尝试将代码移出函数,然后只需单击一下,它就会工作。

刚刚遇到同样的问题,并根据上述答案找到了一个简单的解决方案。 因为你的函数需要两次点击才能工作,我只是调用了函数上方的函数,它工作得很好。这样,函数在加载时已经被调用了一次,然后当你点击它时,它会被第二次调用

yourFunction();

function yourFunction(){
  -- content -- 
}

好的,我明白你的意思,调用了两个函数,但是我对把代码移到函数之外有点迷茫……你是说让它开始。onclick=*coding*?还是你在说html中的一些东西?不,只是删除行函数PageChange{和匹配的}稍后@damightyoptiqq,但是如果我把它取出来,点击按钮怎么知道我告诉它做的是哪个函数?这就是你想要的吗?@DaMightyOptiqOk,你能试着把window.onload=函数{函数页面更改的地方?记得重新添加结束括号}