我的功能未在JavaScript中运行

问题描述:

如何让此代码在HTML的“head”标记中工作?我必须使用这两个函数,并且不能只使用一个函数。我知道这是不好的做法,但我会如何去做这件事?感谢您的帮助。我的功能未在JavaScript中运行

var myImage; 
function prepareEventHandlers() { 
    var myImage = document.getElementById('mainImage'); 
} 

function runEvents() { 
    myImage.onclick = function() { 
     alert('You clicked on the image.'); 
    }; 
} 

window.onload = function() { 
    prepareEventHandlers(); 
    runEvents(); 
} 
+0

是什么让你觉得“你的功能没有运行”?如果你打开浏览器的控制台,你会发现类似'TypeError:myImage is undefined'。所以这个函数会运行,但会抛出一个错误。 – Oriol 2014-08-29 02:20:06

您需要在prepareEventHandlers()删除var,因为你所谓的声明MYIMAGE一个新的局部变量,而不是分配外一个。

var myImage; 

    function prepareEventHandlers() { 
     myImage = document.getElementById('mainImage'); 
    } 

删除prepareEventHandlers()函数中的“var”。

var myImage; 

function prepareEventHandlers() { 
    myImage = document.getElementById('mainImage'); 
} 

function runEvents() { 
    myImage.onclick = function() { 
     alert('You clicked on the image.'); 
    }; 
} 

window.onload = function() { 
    prepareEventHandlers(); 
    runEvents(); 
}