캔버스가 조작 할 준비가되었을 때 감지하는 방법은 무엇입니까?
-
06-07-2019 - |
문제
jQuery와 같은 페이지에 x 캔버스 요소를 동적으로 추가하고 있습니다.
$(document).ready(function() {
for(i=0;i<4;i++) {
var can = $(document.createElement("canvas"))
.attr("id","table"+i)
.addClass("table")
.attr("width",640)
.attr("height",480)
.appendTo('#container');
}
//...
});
어느 것도 아니다 .append()
...도 아니다 .appendTo()
콜백이 즉시 발생하기 때문에 콜백을하십시오. 불행히도, 캔버스 요소에 대한 어떤 것이 즉시 발생하지 않습니다.
내가 갈 때 .getContext('2d')
캔버스 요소 중 하나에서 "getContext는 함수가 아닙니다"로 실패합니다. 이것은 Chrome뿐만 아니라 FF 3.5에서도 발생합니다.
내가 캔버스 요소와 같은 임의의 이벤트 핸들러를 할당하고 임의의 경우 .click()
, 및 사용 .getContext()
이 경우 완벽하게 작동합니다.
캔버스가 조작 준비가되어 있는지 효율적으로 결정할 수 있습니까?
해결책
나는 당신이 사용할 수 있다고 생각하지 않습니다 getContext()
에 can
변하기 쉬운.
그렇게한다면 시도해보십시오 can[0].getContext()
. 이것은 실제로 jQuery가 아닌 요소 객체를 얻습니다.
다른 팁
먼저 브라우저에 대한 버그 보고서가 있는지 확인합니다.
한편, SetInterval 또는 루프 만 사용하여 .getContext (브래킷이없는)가 사실인지 확인하고 (현명한 제한이 있으므로) 무한 루프로 브라우저를 실속하지 마십시오. 무언가 잘못되거나 사용자가 브라우저에 해당 기능이 없습니다.)
캔버스의 Domready 이벤트에 함수를 첨부 할 수 있습니다.
제휴하지 않습니다 StackOverflow