我正在尝试按名称调用函数 .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()
函数在外部 .js
包含在 <head>
中的脚本的 HTML。
最佳答案
这是因为处理程序testMessage
将其绑定(bind)到更改事件时未定义。
如果它在与下面相同的脚本上下文中,它应该可以工作,
<script type="text/javascript">
$('#numb').change(testMessage);
function testMessage(){
alert('Hello');
}
</script>
里面的代码<script></script>
从顶部开始逐一执行 testMessage
第一个函数不存在 <script></script>
.
这里有几个选项,
将它放在一个匿名函数中,让您的脚本解析
testMessage
以后发挥作用。 [如 Optimus Prime 中的建议回答]<script type="text/javascript"> $('#numb').change(function () { testMessage }); </script> <script type="text/javascript"> function testMessage(){ alert('Hello'); } </script>
包含有
testMessage
的脚本script
上面的函数像下面这样绑定(bind) testMessage,<script type="text/javascript"> function testMessage(){ alert('Hello'); } </script> <script type="text/javascript"> $('#numb').change(testMessage); </script>
关于javascript - jquery:在选择更改时按名称调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18239387/