嗨我正在学习javascript的基础知识我尝试了流动的例子:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<script type="text/javascript">
function name(){
alert('ffff')
}
</script>
<form action="#" method="post">
<input type="text" onclick="name()" />
</form>
</body>
</html>
&#13;
当我运行它没什么好开心时,我尝试了其他事件,例如ondblclick onmouseup ...但是我也没有在许多浏览器中试过这个但是什么都没有...我做错了什么?谢谢,抱歉英文不好
答案 0 :(得分:4)
您正在遇到使用内部事件属性时发生的奇怪范围交互。
当您致电name()
时,范围规则会在找到包含您的函数的全局name
变量之前找到输入元素的name
属性。 name
属性包含字符串或未定义(因此当您尝试将其视为函数时会出现错误。)
不要使用内部事件属性。使用JavaScript绑定您的事件处理程序。
function name(event) {
alert('ffff');
}
document.querySelector('input').addEventListener('click', name);
<form action="#" method="post">
<input type="text" />
</form>