Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 未捕获类型错误:canvas1.position不是p5.js中的函数_Javascript_Jquery_Html_P5.js - Fatal编程技术网

Javascript 未捕获类型错误:canvas1.position不是p5.js中的函数

Javascript 未捕获类型错误:canvas1.position不是p5.js中的函数,javascript,jquery,html,p5.js,Javascript,Jquery,Html,P5.js,我正在尝试使用p5.js和javascript编写程序。但是我在p5.dom.js中遇到了一个问题,出现了如下错误: “未捕获类型错误:canvas1.position不是函数” 我几乎每天都在消耗:( 我正要用p5.js制作另一个js文件 这是我的密码 main.html <html> <head> <meta charset="UTF-8"> <script src="https://code.jquery.c

我正在尝试使用p5.js和javascript编写程序。但是我在p5.dom.js中遇到了一个问题,出现了如下错误:

“未捕获类型错误:canvas1.position不是函数”

我几乎每天都在消耗:(

我正要用p5.js制作另一个js文件

这是我的密码

main.html

<html>
    <head>
        <meta charset="UTF-8">
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    </head>
    <body>
        <canvas id="canvas" width=1200 height=1334></canvas>
        <script src="coords.js"></script>
        <script src="p5/p5/p5.min.js"></script>
        <script src="p5/p5/p5.dom.js"></script>

    </body>
</html>

请帮帮我!!

好的,考虑到
coords
还有其他代码,您可能应该这样做:
正常包括
sketch.js
,并将其放在
p5
文件之后。
然后像往常一样包括
coords

<html>
    <head>
        <meta charset="UTF-8">
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    </head>
    <body>
        <canvas id="canvas" width=1200 height=1334></canvas>
        <script src="p5/p5/p5.min.js"></script>
        <script src="p5/p5/p5.dom.js"></script>
        <script src="sketch.js"></script>
        <script src="coords.js"></script>
    </body>
</html>  
这样,您就不会有奇怪的和不必要的ajax调用加载您已经加载的代码

编辑 假定默认情况下运行
setup()
,您应该能够将
setup
放在您的if条件中,并将
sketch.js
一起删除

if(flag==1 && count==2){
    var canvas1;
    function setup(){
        canvas1=createCanvas(width1,height1);
        canvas1.position(minX1,maxY1);//got error here!!
    }
} 
还是像g·安回答的那样

if (flag == 1 && count == 2) {
    $('body').append('<script src="sketch.js"></script>');
}
 

试着放在下面@Ollaw它不起作用了。
coords.js
是什么,为什么?试着把
coords.js
放在一起。在
p5
脚本之后放
sketch.js
进去,只有当
条件匹配时才运行
设置
函数。@Craicerjack在coords.js中还有其他函数,但我不知道dn不要上传到那里…谢谢,但是sketch.js应该在以下条件下执行:if(flag==1&&count==2),否则sketch.js中的画布就会出现:(您试过了吗,因为
setup()
sketch.js
中的
仅在满足您的条件时调用,除非代码比您显示的多…@user8014056您可以尝试将设置移动到
条件
中,或者您可以设置一个对象来容纳它,然后仅在满足条件时实例化它-
if(flag==1 && count==2){
    setup();
}  
if(flag==1 && count==2){
    var canvas1;
    function setup(){
        canvas1=createCanvas(width1,height1);
        canvas1.position(minX1,maxY1);//got error here!!
    }
} 
if (flag == 1 && count == 2) {
    $('body').append('<script src="sketch.js"></script>');
}
 
var s = function( p ) {
    var x = 100; 
    var y = 100;
    
    p.setup = function() {
        p.createCanvas(x, y);
        p.position(x,y);
    };
    
    p.draw = function() {
        p.background(0);
        p.fill(255);
        p.rect(x,y,50,50);
    };
};

if (flag == 1 && count == 2) {
    var myp5 = new p5(s);
}