Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 document.ready-won'中的函数;行不通_Javascript_Jquery - Fatal编程技术网

Javascript document.ready-won'中的函数;行不通

Javascript document.ready-won'中的函数;行不通,javascript,jquery,Javascript,Jquery,我有以下功能: $(document).ready(function(){ function fav(type){ switch(type){ case "radius":if(radius_fav.indexOf(rad)== -1){ radius_fav.push(rad); } break; case

我有以下功能:

$(document).ready(function(){
 function fav(type){
    switch(type){
        case "radius":if(radius_fav.indexOf(rad)== -1){
                        radius_fav.push(rad);
                         }
                         break;
        case  "transform":if(transform_fav.indexOf(final_transformation) == -1){transform_fav.push(final_transformation);}
                            break;
        default:if(bshadow !== none && box_fav.indexOf(bshadow) == -1){box_fav.push(bshadow);}  
                        break;                              
    }
    }//end of switch statement


});
在$(document).ready()内部。除非将此函数放在document.ready()外部,否则此函数将不起作用。有什么想法吗?html页面中包含Jquery标记 慰问: 未捕获引用错误:未定义fav

我有以下函数…在$(document.ready()内部。除非将此函数放在document.ready()外部,否则它将无法工作。有什么想法吗

听起来像是从
onXyz
属性调用函数,如下所示:

<div onclick="fav('radius')">...</div>
…然后在
ready
中:

$("#radius").on("click", function() {
    fav('radius');
});
…或类似的

您不必为所有这些
id
s指定,事实上,您可以对其中几个使用相同的处理程序。例如:

<div class="control" data-type="radius">...</div>
<div class="control" data-type="transform">...</div>
<!-- ... -->

请注意,在大多数情况下,您根本不需要
ready
功能。只需将一个内联调用的函数表达式放在文档末尾,就在关闭标记之前:

<script>
(function() {
    $(".control").on("click", function() {
        fav(this.getAttribute("data-type"));
        // Or:
        // fav($(this).attr("data-type"));
        // But not .data(), that's for something else, not for just accessing data-* attributes
    });
})();
</script>
</body>
</html>

(功能(){
$(.control”)。在(“单击”,函数()上{
fav(this.getAttribute(“数据类型”);
//或:
//fav($(this.attr(“数据类型”));
//但不是.data(),这是用于其他用途,而不仅仅是用于访问数据-*属性
});
})();

如果不控制
脚本
标记的位置,那么实际上只需要一个
就绪
处理程序。

那么为什么要将它放在伪就绪处理程序中呢?我猜您正面临范围问题,请检查控制台是否有错误
$(".control").on("click", function() {
    fav(this.getAttribute("data-type"));
    // Or:
    // fav($(this).attr("data-type"));
    // But not .data(), that's for something else, not for just accessing data-* attributes
});
<script>
(function() {
    $(".control").on("click", function() {
        fav(this.getAttribute("data-type"));
        // Or:
        // fav($(this).attr("data-type"));
        // But not .data(), that's for something else, not for just accessing data-* attributes
    });
})();
</script>
</body>
</html>