你好我有这个代码
$(function() {
bonsai.run(document.getElementById('movie'), {
code: function() {
var rect= new Rect(0, 0, 100, 100);
rect.on('multi:pointerdown', function(e) {
$("#dialog-form").dialog("open");
});
},
width: 500,
height: 400,
});
});
当我点击我的矩形时出现此错误:
ReferenceError:$未定义
如何获得有关jquery的参考?
答案 0 :(得分:5)
BonsaiJS创建一个新的执行上下文(通常是一个Web worker),在bonsai.run
内传递的代码在不同的范围内执行,其中jQuery不可用。有关BonsaiJS如何执行代码的详细信息可以找到here。
但要解决您的问题,您可以与所谓的BonsaiJS跑步者上下文沟通:
$(function() {
var movie = bonsai.run(document.getElementById('movie'), {
// note: this function will be stringified and sent to the runner context
code: function() {
var rect= new Rect(0, 0, 100, 100).fill('red').addTo(stage);
rect.on('multi:pointerdown', function(e) {
// this is how you would pass data with your message
stage.sendMessage('openDialog', {
id: '#dialog-form'
});
// no data:
// stage.sendMessage('openDialog', {});
});
},
width: 500,
height: 400,
});
movie.on('load', function() {
movie.on('message:openDialog', function(data) {
$(data.id).dialog("open");
});
});
});
答案 1 :(得分:0)
确保jquery核心中的Jquery变量不会覆盖$ variable。
加载脚本的顺序很重要,在jQuery加载后运行脚本。
答案 2 :(得分:0)
也许你在包含JQuery Javascript之前调用该函数?首先引用JQuery脚本。