【问题标题】:How to change event execution order?如何更改事件执行顺序?
【发布时间】:2016-11-26 16:21:52
【问题描述】:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Close window</title>
</head>
<body>
	<button id="abc" onclick="temp1()">button</button>

<script type="text/javascript">
	function temp1() {
		alert("temp1");
	};

	function temp2() {
		alert("temp2");
	}

	document.getElementById("abc").addEventListener("click", temp2, false);
</script>
</body>
</html>

但我想先显示“temp2”,然后显示“temp1”

这可能吗?还是事件执行顺序取决于浏览器所以我无法更改?

谢谢你的帮助!!

【问题讨论】:

  • 你为什么不写一个独特的函数?
  • @Marielitos 我觉得我的问题太简单了,所以我再问一个问题here,如果你知道答案请帮助我,谢谢

标签: javascript html event-handling dom-events


【解决方案1】:

您可以通过以下几种方式保证此处的订单:

document.getElementById("abc").addEvenListener("click", function() {
  temp2();
  temp1();
}, false);

另一种选择是:

function temp2() {
  alert();
  temp1(); // call temp1 at the end of temp2
}

document.getElementById("abc").addEventListener("click", temp2, false);

【讨论】:

  • 我觉得我的问题太简单了,所以我再问一个问题here,如果你知道答案请帮助我,谢谢
【解决方案2】:

请查看此:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Close window</title>
</head>

<body>
  <!-- here is your first AddEventlistener-->
  <button id="abc" onclick="temp1()">button</button>

  <script type="text/javascript">
    function temp1() {
      alert("temp1");
    };

    function temp2() {
      alert("temp2");
    }

    /*then here is your second AddEventlistener*/
    var d = document.getElementById("abc");
    d.addEventListener("click", temp2, false);

    /*javascript will execute it in order
      if you want to change the order. remove first EventListener then register new one after. something like this:
    */
     //remove listener
    d.onclick = null;
     //register new
    d.addEventListener('click', temp1);
  </script>
</body>

</html>

【讨论】:

  • 谢谢,我认为你的答案很接近,但我认为我的问题太简单了,所以我问另一个问题here,如果你知道答案请帮助我谢谢
  • 您不能指望旧浏览器的订单。 DOM 级别 2 指定没有订单规范。但是,对于 DOM 级别 3,您可以依靠订单。见stackoverflow.com/questions/2706109/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
相关资源
最近更新 更多