jquery:在选择更改时按名称调用函数

我试图通过名称调用函数。 .onchange选择但没有任何反应。 当在属性之后描述函数时,它可以工作。

这不起作用

HTML:

  1 2  

脚本:

  $('#numb').change(testMessage);   function testMessage(){ alert('Hello'); }  

这个工作

HTML:

  1 2  

脚本:

  $('#numb').change(function(){ alert('Hello') });  

编辑:

好吧,对于那些说我要在同一个脚本中包含该function的人。 这是不可能的,因为testMessage()函数位于HTML的中包含的外部.js脚本中。

这是因为在将其绑定到change事件时未定义处理程序testMessage

它应该工作,如果它在如下所示的相同脚本上下文中,

  

中的代码从top开始逐行执行,而第一个中不存在testMessage函数。

你有几个选择,

  1. 把它放在一个匿名函数中,让你的脚本稍后解析testMessage函数。 [根据擎天柱的回答]

       
  2. 在下面绑定testMessage的script上面包含testMessage函数的script ,如下所示,

       

相反,试试,

  

工作Jsfiddle试试这个:

  

试试这个并放在相同的脚本标签中:

  

您必须在更改function上定义回调。

  

这应该可以解决你的问题。

我不认为你的参考存在于函数中这里有两种方法可以做到。 我把命名空间版本作为建议,因为它可能有助于清理代码。

HTML:

  

脚本:

// Namespaced并使用Proxy

  

//刚刚宣布

  

如果您的方法在另一个文件中,请确保在具有事件绑定的文件之前包含该文件。 你收到任何控制台错误吗?