Проблема прокрутки JQuery при отправке формы - PullRequest
0 голосов
/ 09 октября 2009

Я создаю веб-сайт ASP.NET, и я озадачен поведением одной страницы, у меня есть длинная форма и кнопка отправки, у меня есть фрагмент JavaScript ниже на странице для обработки прокручивая страницу обратно при отправке формы, при первом нажатии кнопки отправки все работает, все последовательные щелчки вообще не работают, есть идеи, почему?

<script type="text/javascript">
    $(".thebutton").click(function(){
       $("html, body").animate({scrollTop: 200}, 1000); 
    });
</script>

Ура, Тхи

Ответы [ 3 ]

0 голосов
/ 10 октября 2009

Ваш скрипт будет запущен ДО публикации.

Представьте, если вы будете:

Начальная загрузка страницы Событие Bind Click с помощью jQuery

Нажмите кнопку jQuery Click повышен html и body scrollTop установлены на 200 во время «одушевления» форма подается

запускается код события щелчка на конце asp.net страница перезагружена.

string script = "$(function() { $('html, body').scrollTop(200); });";
ClientScript.RegisterStartupScript(this.GetType(), "scrollTop", script, true);

Это должно заботиться о том, чего вы хотите достичь.

Надеюсь, это поможет.

0 голосов
/ 10 октября 2009

Ааа,

Использование поста Ajax отличает его от моего поста выше.

Меняет ли ваш ajax-вызов кнопки на странице? Я предполагаю, что вы используете UpdatePanel с кнопками в ней.

Поскольку при выполнении вызова Ajax элементы управления в UpdatePanel перестраиваются, DOM видит их как разные объекты, и эти новые объекты больше не связаны с функцией щелчка jQuery. Вам нужно будет повторно привязать событие нажатия этих кнопок после публикации ajax, чтобы снова включить нужную функцию.

Использование новых «живых» обработчиков jQuerys должно помочь вам:

$(".thebutton").live("click", function() {
      $("html, body").animate({scrollTop: 200}, 1000);
});

Надеюсь, это поможет.

0 голосов
/ 09 октября 2009

Если ваша кнопка «Отправить» выполняет полный постбэк, я бы посмотрел источник на втором экземпляре веб-страницы и убедился, что скрипт все еще там.

...