Если я правильно понял, что вы хотите изменить положение элемента, который содержит вашу сводку проверки, когда он появляется, то AFAIK jQuery не предоставляет события для обнаружения изменений innerHtml.
Мое предложение состоит в том, чтобы переместить это в функцию и вызывать ее по требованию из своего кода проверки.
//in your validation code
$("#vsmSummary").html('Your Validation Message Here');
Reposition();
//in a separate function
function Reposition()
{
var newTop = $(window).height() - $("#vsmSummary").height();
var newLeft = ($(window).width() - $("#vsmSummary").width()) / 2;
$("#vsmSummary").css(
{
'position': 'absolute',
'left': newLeft,
'top': newTop
}
);
}
Если вы хотите, чтобы он был чище, вы даже можете создать его как функцию jQuery:
jQuery.fn.reposition = function () {
var newTop = $(window).height() - $(this).height();
var newLeft = ($(window).width() - $(this).width()) / 2;
$(this).css(
{
'position': 'absolute',
'left': newLeft,
'top': newTop
}
);
}
и затем назовите это так:
$("#vsmSummary").html('Your Validation Message Here').reposition();
ПРИМЕЧАНИЕ. Вы можете проверить с помощью innerHTML.length
и setInterval()
, но это решение с избыточным количеством.