Javascript jquery:在选择更改时按名称调用函数
我试图用select的名称Javascript jquery:在选择更改时按名称调用函数,javascript,jquery,function,Javascript,Jquery,Function,我试图用select的名称.onchange调用函数,但什么也没发生。当在属性后面描述函数时,它就工作了 这不起作用 HTML: 1. 2. 脚本: <script type="text/javascript"> $('#numb').change(testMessage); </script> <script type="text/javascript"> function testMessage(){ alert('H
.onchange
调用函数,但什么也没发生。当在属性后面描述函数时,它就工作了
这不起作用
HTML:
1.
2.
脚本:
<script type="text/javascript">
$('#numb').change(testMessage);
</script>
<script type="text/javascript">
function testMessage(){
alert('Hello');
}
</script>
<script type="text/javascript">
$('#numb').change(function(){
alert('Hello')
});
</script>
$('#numb').change(testMessage);
函数testMessage(){
警惕(“你好”);
}
这很有效
HTML:
1.
2.
脚本:
<script type="text/javascript">
$('#numb').change(testMessage);
</script>
<script type="text/javascript">
function testMessage(){
alert('Hello');
}
</script>
<script type="text/javascript">
$('#numb').change(function(){
alert('Hello')
});
</script>
$('#numb').change(function(){
警报(“你好”)
});
编辑:
好的,对于那些让我在同一个脚本中包含函数的人来说。这是不可能的,因为
testMessage()
函数位于HTML的
中包含的外部.js
脚本中。必须在change函数上定义回调
<script type="text/javascript">
$('#numb').change(function(){
testMessage();
);
function testMessage(){
alert('Hello');
}
</script>
$('#numb').change(function(){
testMessage();
);
函数testMessage(){
警惕(“你好”);
}
这应该可以解决您的问题。请尝试
<script type="text/javascript">
$('#numb').change(function(){
testMessage();
});
</script>
$('#numb').change(function(){
testMessage();
});
这是因为将处理程序testMessage
绑定到更改事件时未定义该处理程序
如果它在下面相同的脚本上下文中,它应该可以工作
<script type="text/javascript">
$('#numb').change(testMessage);
function testMessage(){
alert('Hello');
}
</script>
<script type="text/javascript">
function testMessage(){
alert('Hello');
}
</script>
<script type="text/javascript">
$('#numb').change(testMessage);
</script>
脚本
上方包括具有testMessage
功能的脚本,如下所示
<script type="text/javascript">
$('#numb').change(testMessage);
function testMessage(){
alert('Hello');
}
</script>
<script type="text/javascript">
function testMessage(){
alert('Hello');
}
</script>
<script type="text/javascript">
$('#numb').change(testMessage);
</script>
函数testMessage(){
警惕(“你好”);
}
$('#numb').change(testMessage);
尝试此操作并将其放置在同一脚本标记中:
<script type="text/javascript">
$(document).ready(function(){
$('#numb').change(testMessage);
function testMessage(){
alert('Hello');
}
});
</script>
$(文档).ready(函数(){
$('#numb').change(testMessage);
函数testMessage(){
警惕(“你好”);
}
});
试试这个:
<script type="text/javascript">
$('#numb').on('change',testMessage);
</script>
$('#numb')。on('change',testMessage);
我认为您对函数的引用还不存在,这里有两种方法可以实现。
我建议使用名称空间版本,因为它可能有助于清理您的代码
HTML:
1.
2.
脚本:
<script type="text/javascript">
$('#numb').change(testMessage);
</script>
<script type="text/javascript">
function testMessage(){
alert('Hello');
}
</script>
<script type="text/javascript">
$('#numb').change(function(){
alert('Hello')
});
</script>
//名称空间和使用代理
<script type="text/javascript">
var project = project || {};
project = {
testMessage: function (event) {
alert('Hello');
}
};
$('#numb').change($.proxy(project.testMessage, project));
</script>
var project=project |{};
项目={
testMessage:函数(事件){
警惕(“你好”);
}
};
$('#numb').change($.proxy(project.testMessage,project));
//刚刚宣布
<script type="text/javascript">
function testMessage(){
alert('Hello');
}
$('#numb').change(function(event) {
testMessage();
});
</script>
函数testMessage(){
警惕(“你好”);
}
$('#numb')。更改(函数(事件){
testMessage();
});
如果您的方法位于另一个文件中,请确保在包含事件绑定的文件之前包含该文件。您是否收到任何控制台错误?您的控制台怎么说?类似于
testMessage的内容没有定义
?您应该在文档中真正进行事件绑定。就绪功能对我来说很好:@JonnySooter问题是mu多个
元素。在它们之间提升不起作用:从编辑:函数位于HTML的外部.js脚本中。
@Perocat绑定时需要解析处理程序函数,但不解析处理程序函数的内容。@Perocat匿名函数会延迟对testMess的取消引用age
。到那时,它将被定义。这是一个好的/正确的解决方案,还是延迟可能会很短?@Perocat如果更简单的话,您可以更改脚本执行顺序。。将具有处理函数的脚本移到绑定该函数的脚本之上。@Perocat然后,您可以在jquery之前使用此函数加载js在我的回答中重复或仅使用方法。@Perocat将其包装在匿名函数中。绑定到onchange事件时,需要解析处理程序函数testMessage
,但不需要解析处理程序函数的内容。