2012-01-08 55 views
4

如果我使用此:PJS是未定义的(processingjs)

$(document).ready(function() { 
    pjs = Processing.getInstanceById("EyeCanvas"); 
    console.log(pjs); 
} 

然后PJS总是未定义

当我使用此:

function test() { 
    pjs = Processing.getInstanceById("EyeCanvas"); 
    console.log(pjs); 
} 

和触发测试()的一个按钮那么pjs = D.处理,因为它应该是。

我在这个顺序加载脚本:

<script type="text/javascript" src="processing-1.3.6.min.js"></script> 
    <script type="text/javascript" src="jquery1-7-1.js"></script> 
    <script type="text/javascript" src="script.js"></script> 

如何与不具有人按下按钮PJS工作?

+0

如果您在页面的“加载”处理程序而不是“就绪”中尝试它会发生什么? – Pointy 2012-01-08 16:54:27

+0

澄清Pointy的评论:'$(window).load(function(){// Get instance here})' – 2012-01-08 17:27:59

+1

为什么在jquery之前处理?和什么浏览器/平台? – mplungjan 2012-01-08 18:00:02

回答

3

请试试这个 - 只是为了还看它是否是一个时机的问题 - 注意交换脚本太:

<script type="text/javascript" src="jquery1-7-1.js"></script> 
<script type="text/javascript" src="processing-1.3.6.min.js"></script> 
<script type="text/javascript" src="script.js"></script> 

var tId,pjs,cnt=0; 
$(document).ready(function() { 
    tId=setInterval(function() { 
    pjs = Processing.getInstanceById("EyeCanvas"); 
    console.log(cnt+':'+pjs); 
    if (pjs) clearInterval(tId); 
    },500); 
}); 

和这说明了什么?

var tId,pjs,cnt=0; 
$(document).ready(function() { 
    pjs = Processing.getInstanceById("EyeCanvas"); 
    console.log(cnt+':'+pjs); 
    if (!pjs) tId=setInterval(function() { 
    pjs = Processing.getInstanceById("EyeCanvas"); 
    console.log(cnt+':'+pjs); 
    if (pjs) clearInterval(tId); 
    },500); 
}); 
+0

0:[对象对象] 感谢,时间必须是 – clankill3r 2012-01-08 19:04:30

+0

或者我在我的答案中评论和实施的顺序... – mplungjan 2012-01-09 05:57:04

0

mplungjan写了真正的答案,但请记住,当你使用jQuery插件,你必须首先加载jQuery库,所有的时间。

+0

ki会记住 – clankill3r 2012-01-08 20:05:17

+0

那么为什么当我不仅评论它,而且还交换我的答案中的脚本? – mplungjan 2012-01-09 05:56:37