在javascript中将参数传递给事件侦听器函数

时间:2015-01-07 02:47:15

标签: javascript scope event-listener

您好我有一些代码,我在其中通过html接收用户输入并将其分配给两个全局变量

 var spursscoref = document.getElementById("spursscore").value;
 var livscoref = document.getElementById("livscore").value;

下一个在addeventlistener函数中显示为whowon函数的参数

var d = document.querySelector("#gut2");
d.addEventListener("click", function () {
whowon(spursscoref, livscoref, spurs, liverpool)
}, false);

click事件旨在触发whowon函数并传入参数

function whowon(FirstScore, SecondScore, FirstTeam, SecondTeam) {

if (FirstScore > SecondScore) {

    FirstTeam.win();
    SecondTeam.lose();


} else if (FirstScore < SecondScore) {

    SecondTeam.win();


} else {

    FirstTeam.draw();
    SecondTeam.draw();
}

}

但是值为null,因为我在这一行上无法读取null错误的属性

var spursscoref = document.getElementById(&#34; spursscore&#34;)。value;

我很确定问题来自addlistener函数,任何帮助都会受到赞赏

2 个答案:

答案 0 :(得分:2)

你可以做这样的事情 -

$( document ).ready(function() {     

var d = document.querySelector("#gut2");
d.addEventListener("click", function () {
  var spursscoref = document.getElementById("spursscore").value;
  var livscoref = document.getElementById("livscore").value;
  whowon(spursscoref, livscoref, spurs, liverpool)
  }, false);

});

将代码包装在$(document).ready(function(){})中。这将确保在执行Javascript代码之前加载所有DOM元素。

答案 1 :(得分:0)

尝试将所有代码放在此

document.addEventListener("DOMContentLoaded", function(event) {

   //Your code here

});

我的猜测是你的代码在html实际加载之前执行,导致它返回null。