Как добавлять события jQuery к новым элементам?

#jquery #events #svg

#jquery #Мероприятия #svg

Вопрос:

У меня есть SVG-холст, и когда я дважды щелкаю по нему, я создаю внутри него новый SVG-элемент.

Как я могу создать событие щелчка для этих новых элементов, созданных в режиме реального времени по идентификатору нового элемента.

Идентификаторы этих элементов будут словом, которое я сообщаю.

Элементы создаются внешним API (Graph Dracula), поэтому не могут его изменить.

Пример: я добавляю новый элемент с именем «Renato», поэтому идентификатор элемента будет «Renato».

Комментарии:

1. Если эти элементы SVG используют общий обработчик кликов, рассмотрите возможность делегирования событий.

Ответ №1:

Похоже, вы должны просто иметь возможность привязать его, используя что-то вроде:

$(«# …»).click(функция() { … });

В принципе, это как обычно. Вам просто нужна какая-то ссылка на него, и вы можете использовать jQuery для привязки чего-либо к нему. Если вы создаете его, у вас, очевидно, есть ссылка на него, поэтому вы можете сделать это на этом шаге.

Редактировать: просто прочитайте, что они создаются внешним API. Однако, если вы знаете идентификатор, вы всегда можете просто использовать $(«#idhere»).

Ответ №2:

Вы хотели бы использовать функцию live в jQuery. Он может привязывать события к динамически создаваемым элементам после загрузки DOM.

 $("#Renato").live("click", function(){...});
  

Или в более поздних версиях jQuery

 $('#some_non_dynamic_parent').on('click', '#Renato', function(){});