任何人都可以告诉我为什么我一直在使用此代码获取“displaymessage is not defined”错误消息..提前感谢:)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST PAGE</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
function displaymessage() {
alert("Hello World!");
}
});
</script>
</head>
<body>
<p><input type="button" name="start" id="start" value="start" onclick="displaymessage()" /></p>
</body>
</html>
答案 0 :(得分:2)
范围。您的函数在onload
函数的范围内声明,因此这是您能够访问它的唯一位置。要从其他位置访问它,请将其移到$(document).ready
功能之外。
答案 1 :(得分:1)
您在DOM Ready回调中定义了displayMessage
函数 - 这意味着它将在......好...... DOM准备就绪时定义。然而 - 你将它作为处理程序添加到点击DOM元素 - 在实际定义函数之前处理。
将定义移出$(document).ready(function(){...}
,你就可以了。
此外,将处理程序绑定到各种DOM事件的首选方法是编程方式,而不是声明方式。您不应该在按钮中添加onclick
属性,而应将整个内容重写为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
...
<script type="text/javascript">
$(document).ready(function() {
function displaymessage() {
alert("Hello World!");
}
$('#start').on('click', displaymessage);
});
</script>
</head>
<body>
<p><input type="button" name="start" id="start" value="start"/></p>
</body>
</html>
答案 2 :(得分:0)
为什么要在文档就绪函数内写入。只是写在外面就应该这样
<script type="text/javascript">
function displaymessage() {
alert("Hello World!");
}
</script>