2011-12-15 2 views
3

Я включил все мои кода в этой скрипкой: http://jsfiddle.net/RymyY/добавить холст динамически с помощью JQuery

Мои вопросы борьбы с кнопкой «Добавить фигуру» на левой стороне.

Я хочу иметь возможность добавлять новый холст каждый раз, когда нажимается вторая кнопка добавления, но я не могу заставить ее работать. Аналогичный код работает в этой скрипке здесь: http://jsfiddle.net/dzejkej/xwg5f/

Я не знаю, почему мой не работает. Я понятия не имею, что случилось. Пожалуйста помоги.

+0

уточните пожалуйста. добавление фигур в ваш код отлично подходит для меня. – supertopi

+0

@ TopiOjala - это сработало, в каком скрипке? сверху или снизу? моя проблема в том, что код работает в нижней скрипке (http://jsfiddle.net/dzejkej/xwg5f/), но не в верхней части (http://jsfiddle.net/RymyY/). – dopatraman

+0

Кажется, что работает для меня: я нажимаю «Начать», «Добавить форму», «Прямоугольник», «Добавить», и прямоугольник рисуется в верхнем левом углу холста. Разумеется, последующие прямоугольники рисуются над предыдущими. Очевидно, круги еще не реализованы. Итак, какая функциональность отсутствует? Что именно вы подразумеваете под «добавлением нового холста»? –

ответ

10

Вам не следует создавать несколько элементов с тем же идентификатором, что и в примере кода. document.getElementById('canvas'); всегда возвращает первый элемент с идентификатором «холст», как и должно быть.

var elementID = 'canvas' + $('canvas').length; // Unique ID 

$('<canvas>').attr({ 
    id: elementID 
}).css({ 
    width: rectWidth + 'px', 
    height: rectHeight + 'px' 
}).appendTo('#work_area'); 

var canvas = document.getElementById(elementID); // Use the created element 

Вот рабочий пример; http://jsfiddle.net/5b8NH/

Смежные вопросы