나는 기본적으로 두 캔버스과 같이 있습니다여러 캔버스에 동일한 이벤트를 적용하지만, 캔버스에 따라 다른 일을 JQuery와
<canvas id="canvas1" class="canvases" ></canvas>
<canvas id="canvas2" class="canvases" ></canvas>
그리고 그들은 Processing.js를 실행하고 무거운 얻을 수 있기 때문에, 나는 마우스 오버를 적용 오버와 너무 같은 jQuery를 모두 버튼에 이벤트 :
num_canvases = 2;
canvasArray = [];
for (i = 0, i < num_canvases, i++) {
canvasArray.push(Processing.getInstanceById('canvas'+i);
}
$('#canvas1').mouseover(function() {
if (!force_play_all) {
canvasArray[0].pause_or_resume(false);
};
});
$('#canvas2').mouseover(function(){
if (!force_play_all) {
canvasArray[1].pause_or_resume(false);
};
});
등 ...
하지만 지금은 20 캔버스에 확대하고있어하고 적용 할 수있는 방법을 찾고 있었다 동일한 마우스 오버 이벤트를 각 캔버스에 적용하고 마우스를 끝내면 pause_or_resume을 실행하십시오. 나는 수업 당 그것을 적용 할 수 없다. 그렇지 않으면 그들 모두가 켜짐 또는 꺼짐이 될 것이다. 이런 식으로 생각하고 있지만 여전히 작동하지 않습니다. 아이디어? :
$('.canvases').mouseover(function() {
for (var i = 0; i <= numVars-1; i++) {
var name_holder = '#canvas'+(i+1);
$(name_holder).mouseover(function() {
canvas_instance = Processing.getInstanceById('canvas'+i);
if (pause_boolean) {
console.log(name_holder);
console.log(canvas_instance);
canvas_instance.pause_or_resume(pause_boolean);
};
});
};
});
내가 왜 20 캔버스 대신 20 캔버스를 사용하는지 묻겠습니다. –
또한 왜'mouseover' 이벤트를 중첩 시켰습니까? 첫 번째'mouseover'를 사용하고'this.doSomething' 형식을 사용하는 것 같습니다. –
현재'mouseover'를 일시 중지하려는 경우 다음과 같이됩니다 :'$ ('. canvases') .mouseover (function() {if (this.pause_or_resume()) {console.log (name_holder); console.log (canvas_instance); this.pause_or_resume (pause_boolean);}; pause_or_resume' 함수는 작동합니다. –