Предполагая, что ваш программный код работает во время обновления UpdatePanel, может ли быть плохое взаимодействие между вашим обработчиком EndRequest и вашей регистрацией программного кода?topBar () должен вызываться дважды, один раз с вашим сообщением «успешно вставлено», а затем один раз с неопределенным параметром в EndRequest (если только переменная сообщения не определена где-то, чего мы здесь не видим).
Также сохраняйтеИмейте ввиду, что $('#alert')
может вернуть более одного предмета.Если topBar () вызывается более одного раза, это, вероятно, имеет место.
Как насчет того, чтобы сделать что-то подобное, для начала, чтобы смягчить этот непреднамеренный побочный эффект:
function topBar(message) {
var $alert = $('<div/>');
$alert.text(message);
$alert.click(function () {
$(this).slideUp(200);
});
$(body).append($alert);
// Doesn't hurt anything to re-slideUp it if it's already
// hidden, and that keeps this simple.
setTimeout(function () { $alert.slideUp(200) }, 5000);
}
Этоне устраняет проблему с EndRequest и Register * Script, которые выполняют topBar (), но это должно удерживать их от конфликтов, чтобы вы могли лучше видеть, что происходит.
Попробуйте и дайте нам знать, если этоменяет вещи.