如何更改事件执行顺序



<!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"

可能吗?或事件执行顺序取决于浏览器,因此我无法更改它?

感谢您的帮助!

请查看此:

<!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>

有几种方法可以保证此处的顺序:

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);

相关内容

  • 没有找到相关文章

最新更新