Я экспериментирую со Sproutcore и пытаюсь использовать SVG (стандартную векторную графику) в приложении sproutcore. Мне нужно иметь возможность «рисовать» на каком-либо холсте, чтобы отображать такие элементы, как линии, блоки, изображения. В SVG есть все. Моя идея заключалась в том, чтобы включить SVG-изображение с помощью StaticContentView:
svg: SC.StaticContentView.design({
classNames: ['my-static-content-view'],
content: "<svg version='1.1' width='970' height='219'> \
<image id='someimage' x='410.5' y='122' width='25' height='25' xlink:href='"+static_url('/resources/layout/someimage.png')+"'></image> \
</svg>",
tagName: 'section'
})
Пока это прекрасно работает, svg-изображение отображается внутри приложения, субизображение тоже загружается. Теперь моя проблема: я хочу иметь возможность манипулировать svg-изображением во время выполнения, добавлять новые узлы и привязывать события sproutcore к различным узлам. Например: когда нажимается какое-то изображение в кодовом сниппете, я хочу, чтобы событие запускалось. Я решил, что могу связать события, используя
SC.Event.add(someelement, "click", someHandler);
Но мне нужно иметь доступ к узлу svg-DOM, "someimage", чтобы привязать к нему событие. Я гуглил и пробовал jQuery, используя $('someimage').get(0) и многие другие методы, но, похоже, ничего не работает.
Может ли кто-нибудь дать мне подсказку о том, как получить доступ к элементу? Возможно, я делаю это неправильно, используя StaticContentView в первую очередь? Могу ли я создать SVG как собственный Sproutcore-Element или View, чтобы упростить задачу?