Это ошибка в Thickbox.Вот как вы можете это исправить:
Внутри Thickbox.js
на или около строки 221 вы должны увидеть эту строку кода:
$("#TB_ajaxContent").append($('#'+params['inlineId']).children());
изменить его на это:
$("#TB_ajaxContent").html($('#'+params['inlineId']).html())
, а затем на строке 223 или около нее вы увидите эту строку:
$('#'+params['inlineId']).append($("#TB_ajaxContent").children());
отключите строку, добавив две косые черты перед ней следующим образом:
//$('#'+params['inlineId']).append($("#TB_ajaxContent").children());
Объяснение:
Когда Thickbox копирует содержимое из скрытого div в контейнер Thickbox, это происходит путем копирования всех элементов .children ().Если внутри вашего скрытого элемента div есть только текст, ДЕТЕЙ НЕТ, потому что текст сам по себе не является дочерним элементом.Вот почему упаковка вашего контента в тег <p>
будет работать, потому что теперь есть дочерний элемент (тег <p>
).
Так что если вы хотите, чтобы текст только в вашем скрытом элементе div использовал .html()
вместо этого будет захватывать все в вашем скрытом div.Отключение второй строки предотвращает попытку копировать содержимое обратно в скрытый элемент div при закрытии окна, что приведет к дублированию содержимого скрытых элементов в дочерних тегах.