Элемент Span не обновляется правильно
Обновление 3 - 10/09/2013: только что проверил это с Version 29.0.1547.66 m
и проблема все еще сохраняется. Если кто-то еще может проверить это и сообщить мне результаты, которые будут великолепны. Вам нужен встроенный элемент, например, интервал с некоторым текстом, располагайте его относительно и перемещайте на любое количество пикселей слева и сверху. Затем настройте некоторый jScript для изменения текущего внутреннего html элемента на что-то другое, и вы должны увидеть, что он остается таким же в области просмотра, но корректно изменяется в DOM.
Обновление 2: после еще большего тестирования проблема, по-видимому, возникает в элементах, которые встроены, например, span, или имеют CSS, который делает их встроенными, но также относительно позиционированными, похоже, именно эта комбинация и вызывает проблему. После публикации ошибки в Chromium она была помечена как проблема cr-Blink-Rendering, которая выглядит как движок, который отображает DOM в окне просмотра броузера. я использую Version 29.0.1547.57
(текущая версия заканчивается.66, но моя не обновилась из-за ошибки). Так что, если вы используете последнюю версию, этой проблемы может больше не быть.
Обновление: при дальнейшем изучении, я думаю, проблема в последней версии сборки Chrome 29.0.1547.57 м. Когда я тестировал элемент встроенным способом в IE9 и Firefox 21, он работал нормально. Я подал отчет об ошибке для этого на хром
У меня возникла проблема (которую я не смог воссоздать с помощью jsfiddle), когда я выполняю запрос ajax, получаю некоторые значения и помещаю их в элементы span, которые существуют на моей странице.
У меня очень странная проблема, когда ajax-запрос работает и возвращает значения. Значения вставляются в элементы span с помощью метода jQuerys .html, и когда я проверяю DOM с помощью инструментов разработчика Chrome, я вижу новое значение в span.
Однако то, что я вижу на странице, не отражает это, оно все еще показывает старое значение. Тем не менее, если я попытаюсь выделить значение, оно мгновенно изменится на правильное значение (значение, отображаемое в DOM).
Я даже пытался обновить значение span перед вызовом ajax (поскольку используемое мной значение получается из виджета-слайдера пользовательского интерфейса jQuery), но это все равно дает те же результаты.
Кто-нибудь еще сталкивался с этим?
РЕДАКТИРОВАТЬ: Вот часть кода
HTML
<div id="NewLoanSliderAmount" class="NewLoanSliderRules"></div>
<span id="NewLoanSliderAmountDisplay" class="NewLoanDisplay">£600</span>
Код слайдера. Это версия, где я пытаюсь обновить его прямо из значения ползунка
$("#NewLoanSliderAmount").slider({
value: amount,
min: 300,
max: amount,
step: 100,
change: function (event, ui) {
$("#NewLoanSliderAmountDisplay").html("£" + ui.value);
window.CkSpace.GetLoanValues();
}
});
Вот код Ajax:
(function (CkSpace, $, undefined) {
CkSpace.GetLoanValues = function () {
var url = "/Home/UpdateAPR";
$.get(url, { Amount: $("#NewLoanSliderAmount").slider("value"), Length: $("#NewLoanSliderLength").slider("value") }, function (data) {
$("#NewLoanAmount").html("£"+data.LoanAdvance);
$("#NewLoanLength").html(data.LoanTerm);
$("#NewLoanMonthlyCost").html("£"+data.LoanInstalment);
$("#NewLoanTotal").html(data.LoanGrossRepyable);
$("#NewLoanAPR").html(data.LoanAPR+"%");
$("#NewLoanSliderAmountDisplay").html("£" + data.LoanAdvance);
});
}
} (window.CkSpace = window.CkSpace || {}, jQuery));
РЕДАКТИРОВАТЬ 2:
Еще одна вещь, на которую следует обратить внимание: если я установлю точку останова на заполненный промежуток и пройдусь по нему, он будет обновляться каждый раз в инструментах разработчика Chrome
1 ответ
Я выяснил, что является причиной проблемы, хотя я не знаю, ПОЧЕМУ это вызывает проблему.
Сначала я попытался изменить промежуток до div и добавить display:inline
к css. Это все еще не сработало.
Затем я удалил встроенный дисплей и вдруг, как элемент уровня блока, он работает.
Если кто-то знает больше о том, почему это так и может уточнить, пожалуйста, сделайте!
РЕДАКТИРОВАТЬ: На дальнейшее расследование я думаю, что проблема с последней сборкой Chrome Version 29.0.1547.57 m
Когда я тестировал элемент встроенным способом в IE9 и Firefox 21, он работал нормально. Я думаю, что пришло время подать отчет об ошибке!