Per*_*cat 11 javascript jquery function
我试图通过.onchange选择名称来调用函数,但没有任何反应.当在属性之后描述函数时,它可以工作.
这不起作用
HTML:
<select id="numb">
  <option value="1">1</option>
  <option value="2">2</option>
</select>
脚本:
<script type="text/javascript">
    $('#numb').change(testMessage);
</script>
<script type="text/javascript">
    function testMessage(){
        alert('Hello');
    }
</script>
这个工作
HTML:
<select id="numb">
  <option value="1">1</option>
  <option value="2">2</option>
</select>
脚本:
<script type="text/javascript">
    $('#numb').change(function(){
      alert('Hello')
    });
</script>
编辑:
好的,对于那些说我要在同一个脚本中包含该功能的人.这是不可能的,因为该testMessage()函数位于HTML 的外部.js脚本中<head>.
Sel*_*gam 21
这是因为在将testMessage其绑定到change事件时未定义处理程序.
如果它在如下所示的相同脚本上下文中,它应该工作,
<script type="text/javascript">
    $('#numb').change(testMessage);
    function testMessage(){
        alert('Hello');
    }
</script>
代码内部<script></script>从顶部逐行执行,第一个testMessage内部不存在函数<script></script>.
你有几个选择,
将它放在一个匿名函数中,让您的脚本testMessage稍后解析该函数.[根据擎天柱的回答]
<script type="text/javascript">
  $('#numb').change(function () { 
     testMessage
  });
</script>
<script type="text/javascript">
   function testMessage(){
      alert('Hello');
   }
</script>
包括testMessage上面script绑定testMessage的函数的脚本,如下所示,
<script type="text/javascript">
function testMessage(){
    alert('Hello');
}
</script>
<script type="text/javascript">
  $('#numb').change(testMessage);
</script>
而是尝试,
<script type="text/javascript">
    $('#numb').change(function(){
       testMessage();
    });
</script>