我在javascripts中有一个问题

时间:2015-02-05 14:08:12

标签: javascript html

我正在学习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;
&#13;
&#13;

当我运行它没什么好开心时,我尝试了其他事件,例如ondblclick onmouseup ...但是我也没有在许多浏览器中试过这个但是什么都没有...我做错了什么?谢谢,抱歉英文不好

1 个答案:

答案 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>