Я пытаюсь динамически создавать всплывающие всплывающие подсказки с минимальной разметкой (так как их будет много в конце).динамическое создание всплывающего окна в jQuery mobile
В моей разметке у меня есть <div id='help_roles-description'>...</div>
я сделать Ajax вызов к серверу для получения helptexts и обработать их, как это:
// If there are helptext updates, setup them accordingly
if (typeof response.helptexts != "undefined") {
for (var i = 0; i < response.helptexts.length; i++) {
if(response.helptexts[i].html.length) {
var help_label = $("#help_" + response.helptexts[i].id + "");
if(help_label) {
// First of call, create the popup
help_label.closest('div[data-role=dialog]').append($("<div></div>")
.attr("id", "#helptext_" + response.helptexts[i].id + "")
.attr("data-role", "popup")
.addClass("ui-content")
.html(response.helptexts[i].html)
.trigger("create")
);
// Store the html DOM that is inside the label, so we can wrap it in an anchor
var html = help_label.html();
help_label.empty();
help_label.append($("<a></a>")
.attr("href", "#helptext_" + response.helptexts[i].id)
.attr("data-rel", "popup")
.addClass("helper_link")
.html(html)
);
// Output happyness
logger("Setting help for '" + "#helptext_" + response.helptexts[i].id + "" + "' to '" + response.helptexts[i].html+ "'");
}
}
}
}
В одном примере идентификатор является roles-description
. Я не получаю DIV, созданный с идентификатором helptext_roles-description
, заселенный с HTML в ответ, как я ожидал, вместо этого я получаю это:
<div style="display: none;" id="#helptext_roles-description-placeholder">
<!-- placeholder for #helptext_roles-description -->
</div>
Я попытался прибегая к помощи этого, но там, кажется, в горестном отсутствие вещей с мои поисковые запросы и поисковые заполнители возвращают много материалов на входы.
Где я использую closest('div').prepend
Я попытался добавлением, до и добавлений непосредственно к help_label
, и делаю его help_label.parent()
Я даже вынул .html и .trigger бит, чтобы быть вне процесса создания ,
Я также попытался создать div с идентификатором, как это $("<div id='...
, но я всегда получаю только заполнитель.
Что я делаю неправильно?
Первая ошибка, всплывающие окна должны быть добавлены в страницу div. page div должен направить родителя всплывающего div. – Omar
Сначала я начал с html-разметки, а затем запрограммировал ее. Когда я написал ожидаемую разметку, она отлично работает. Думаю, у attr есть какая-то уловка. Я также использую диалог, а не страницу (разметка работает отлично), и я изменил ее на 'help_label.closest ('div [data-role = dialog]'). Append ($ ("
")', но я все еще только –Ну, я не думаю, что его можно открыть всплывающее окно в диалоговом окне. – Omar