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