【问题标题】:End of function return to before function函数结束返回函数前
【发布时间】:2018-08-15 05:30:42
【问题描述】:

抱歉,这可能是一个奇怪标题的奇怪问题。 我在 Javascript 中有这个功能:

function alfred(){
    document.querySelector('.image-7-panel').classList.toggle('notactive');
    document.querySelector('.image-8-panel').classList.toggle('notactive');
    document.querySelector('.background').classList.toggle('alfred-background');
    var text = document.getElementById("heroes");
    if(text.innerHTML !== "Alfred"){
        text.innerHTML = "Alfred";
    } else {
        text.innerHTML = "Heroes are back";
    }
}

但我希望它在运行后恢复到运行前的位置。我怎样才能让它运行?此功能在单击时运行,并且通过相同的单击运行另一个功能。 clearTimeout 在这里没有帮助我,但找不到正常的解决方案。 将用真实的例子来解释。当我单击时,会显示一个图像和一个关联的名称。我希望在我点击后,图像会恢复到点击前的状态以及名称

【问题讨论】:

  • “回到运行前的位置”是什么意思?再次运行函数?
  • 能否请您改写问题末尾的段落并详细说明? “回到运行前的位置”是什么意思?
  • 您提供的代码中没有clearTimeout。此外,当函数结束时,函数调用总是在函数调用之后继续执行下一行(除非发生异常)。
  • 请为您的问题添加所有解释(使用Edit) - 不要将它们作为 cmets 发布。
  • 如果可能,添加一个工作 sn-p 并带有当前代码运行的示例。 (使用工具栏中的<> 按钮)

标签: javascript function dom-manipulation


【解决方案1】:

不要只在“onclick”事件上添加这个处理程序,而是在“onmouseup”和“onmousedown”事件上添加这个处理程序

<div onmouseup="alfred()" onmousedown="alfred()">Example</div>

【讨论】:

    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 2015-08-08
    • 2017-04-03
    • 1970-01-01
    • 2014-03-25
    相关资源
    最近更新 更多