Как привязать события к динамически создаваемому html?
У меня есть проект, в котором, когда вы нажимаете теги, информация в средней части будет меняться, вызывая функцию, которая изменяет текущее значение модели, которая отображается в виде HTML в этом конкретном разделе.
Если сгенерированный HTML имеет больше тегов, как связать их, чтобы они вызывали ту же упомянутую функцию, что и другие теги?
Прямо сейчас, когда вы щелкаете по метке в середине, метод не вызывается и ничего не меняется, но когда вы щелкаете по меткам в верхней части, секция середины детали перерисовывается. Я пробовал с другим звонком applyBindings
но это сделало верхние метки для дублирования.
Это код функции, которую я хочу вызвать:
@Function
static void changeFP(final Dictionary model) {
String searchP = model.getSearchPhrase();
final List<String> listOfTerms = model.getTermList();
for (int i = 0; i < listOfTerms.size(); i++) {
final String term = listOfTerms.get(i);
if (stringsAreEqual(term, searchP)) {
model.setFoundPhrase(term);
model.setDescription(model.getDefinitionList().get(i));
model.setCode(model.getExampleCodeList().get(i));
return;
}
}
model.setDescription("");
model.setCode("");
model.setFoundPhrase(
ResourceBundle.getBundle(
"web/aprendiendola/dictionaryweb/aprendiendola/dictionary/DiccionarioDeJava/TranslateMe"
// , Locale.getDefault()
// ,new Locale("ES")
).getString("NOTFOUND"));
}
Часть, где это должно отрендериться:
<div class="card-panel blue lighten-2">
<h3 data-bind="text: foundPhrase"></h3>
<p class="white-text" data-bind="html:description" style="min-height: 100px;"></p>
</div>
Текст, который должен быть представлен:
CLASS_INFO= <p>Represent types of objects, but can also refer to other non-object conceps as <a class="chip blue lighten-3 white-text" href="#" data-bind="click:$root.changeSP ">Package-Info</a></p>
(CLASS_INFO=
потому что приложение становится интернационализированным)
1 ответ
Если вы хотите применить привязку для определенной части вашего html, вместо myModel.applyBindings() вы можете сделать:
Models.applyBindings (myModel, "id_of_tag");
Это позволяет привязывать разные части страницы к разным моделям. Дайте мне знать, если это решит вашу проблему. Если нет, мне придется посмотреть на весь проект, чтобы увидеть, как это исправить.