Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:未定义函数_Javascript_Jquery - Fatal编程技术网

Javascript 未捕获引用错误:未定义函数

Javascript 未捕获引用错误:未定义函数,javascript,jquery,Javascript,Jquery,我的第一个jquery脚本中有一些简单的代码,我试图调用它的函数,但它一直说函数不存在!我已经检查了拼写,我肯定我以前也做过,但我不知道有什么变化 这是我的代码: 这就是我调用函数的方式: jQuery(function($){ applyField(); }); 有人能告诉我哪里出错了吗?没有定义applyField,因为JSFIDLE将代码包装在一个onload事件处理程序中。因此,该函数仅在此事件处理程序中可见 在左侧菜单中选择“不换行”: 或者,您也可以从这个事件处理程序调用您的函数,

我的第一个jquery脚本中有一些简单的代码,我试图调用它的函数,但它一直说函数不存在!我已经检查了拼写,我肯定我以前也做过,但我不知道有什么变化

这是我的代码:

这就是我调用函数的方式:

jQuery(function($){
applyField();
});
有人能告诉我哪里出错了吗?

没有定义applyField,因为JSFIDLE将代码包装在一个onload事件处理程序中。因此,该函数仅在此事件处理程序中可见

在左侧菜单中选择“不换行”:

或者,您也可以从这个事件处理程序调用您的函数,这将更加连贯

请注意,调用该函数是不够的。如果希望事件绑定有效,请更改

$(this).on('change', '#apply',function() {

未定义applyField,因为JSFIDLE将代码包装在onload事件处理程序中。因此,该函数仅在此事件处理程序中可见

在左侧菜单中选择“不换行”:

或者,您也可以从这个事件处理程序调用您的函数,这将更加连贯

请注意,调用该函数是不够的。如果希望事件绑定有效,请更改

$(this).on('change', '#apply',function() {

在解决了onload问题之后,第二个问题是在函数中,它不是元素的父元素。为了使用.on的那种样式,您需要传入目标元素的父元素,该元素可以是文档

更改为:

$(this).on('change', '#apply',function() {
致:

另外,为了防止隐藏所有输入,我建议使用类而不是选择$'input'。看小提琴

在解决了onload问题之后,第二个问题是在函数中,它不是元素的父元素。为了使用.on的那种样式,您需要传入目标元素的父元素,该元素可以是文档

更改为:

$(this).on('change', '#apply',function() {
致:

另外,为了防止隐藏所有输入,我建议使用类而不是选择$'input'。看小提琴

JQuery

JQuery

在DOM就绪后执行函数所需的时间。。查看演示

$(document).ready(function () {
    $(this).on('change', '#apply',function() {
        var selected = $(this).find(':selected').val(),
            elem = $("#"+selected);
        $("input").addClass('hidden');
        elem.removeClass('hidden');
        $(".donthide").show();
    });
    $("#apply").trigger('change');
});
JQuery

JQuery

在DOM就绪后执行函数所需的时间。。查看演示

$(document).ready(function () {
    $(this).on('change', '#apply',function() {
        var selected = $(this).find(':selected').val(),
            elem = $("#"+selected);
        $("input").addClass('hidden');
        elem.removeClass('hidden');
        $(".donthide").show();
    });
    $("#apply").trigger('change');
});


这对我来说仍然不起作用:或者将函数本身保留在jQueryfunction包装中。。类似于。@Jimmy它对我有效:好吧,它有效,但隐藏了我的所有其他字段:我不确定发生了什么,但在chrome中它隐藏了其他字段!?这对我来说仍然不起作用:或者将函数本身保留在jQueryfunction包装中。。类似于。@Jimmy它对我有效:好吧,它有效,但隐藏了我的所有其他字段:我不确定发生了什么,但在chrome中它隐藏了其他字段!?你能解释一下你改变了什么以及它是如何解决问题的吗?你的例子也隐藏了其他字段,我看不到文件上传的例子,比如在chrome中:@Jimmy:请检查更新你能解释一下你改变了什么以及它是如何解决问题的吗?你的例子也隐藏了其他字段,我在chrome上看不到上传的文件:@Jimmy:请检查更新,我真的疯了?!为什么这些示例都停止显示其他输入-请参见此处:@Jimmy查看我更新的小提琴以获得修复。这是因为你隐藏了所有的输入,你可以用一个类来区分它们。我真的疯了吗?!为什么这些示例都停止显示其他输入-请参见此处:@Jimmy查看我更新的小提琴以获得修复。这是因为您隐藏了所有输入,而可以使用类来区分它们。