ASP.NET jQuery проблема - PullRequest
       12

ASP.NET jQuery проблема

0 голосов
/ 26 ноября 2009

Я копаюсь с jQuery для чего-то связанного с работой, и я пытаюсь заставить работать определенный поток событий, который, кажется, не может прийти в голову.

Я понимаю, как jQuery работает на внешнем интерфейсе, функции вызываются или доступны для вызова из области document.ready, и на моем внешнем интерфейсе запускается некоторая анимация при перезагрузке страницы (после обратной передачи) - однако, это не та функциональность, которую я хочу.

При использовании стандартной модели обратной передачи asp.net (без ajax) возможно ли следующее?

1) Страница загружается, некоторые jQuery выполняют, приводя мои div'ы в правильное место с помощью анимации. (Работает нормально). 2) Пользователь может щелкнуть одну из ссылок внутри div (или самого div), которая затем выполняет анимационный эффект jQuery, когда этот анимационный эффект закончится, используйте javascript, чтобы отправить обратно страницу, передаваемую в элементе, по которому щелкнули. 3) Страница отправляет обратно, я делаю всю свою обработку данных, прежде чем страница снова перезагружается, а затем мой документ. Уже запускается jQuery.

Часть, которую я не могу получить, это # ​​2, я могу запустить jQuery по щелчку моего элемента, прикрепив к нему класс CSS, а затем обработав событие .click этого класса. С этой работой все в порядке, но страница не публикуется обратно (элемент, на который вы нажали, это просто кнопка LinkButton).

Если я вручную помещу код обратной передачи в функцию JScript и вызову эту функцию в конце цепочки эффектов анимации в этом функциональном блоке jQuery, страница отправляется обратно, но я не получаю никакого эффекта анимации jQuery.

Что мне действительно нужно, чтобы это сделать, это

1) Вызовите анимационный эффект jQuery 2) Дождитесь завершения анимационного эффекта 3) Выполнить постбэк по завершении

Я ни в коем случае не эксперт по javascript, но до этого момента прекрасно справлялся.

Любые пункты будут с благодарностью. Привет

Ответы [ 2 ]

2 голосов
/ 26 ноября 2009

Я думаю, что у вас проблема в том, что обходится javascript на «LinkButton». Javascript необходим для работы «обратной передачи».

Самое простое решение для этого - поменять его на кнопку. IMO «LinkButton» плох и никогда не должен использоваться, потому что: а) он недоступен, если у вас нет javascript; б) пользователь должен ожидать, что все, что выглядит как ссылка (GET), не будет иметь побочных эффектов.

0 голосов
/ 26 ноября 2009

jQuery-анимация асинхронная (поэтому ваш браузер не блокируется). Если вы вручную добавите код обратной передачи после вызова анимации, обратная передача, скорее всего, произойдет до того, как у анимации появится шанс.

Подумайте о добавлении вашего кода обратной связи к обратному вызову анимации. Обратный вызов вызывается после завершения анимации, которая звучит так, как вы хотите.

function prePostBackAnimation() {   
    $('something').animate({ width: 70 }, function() {
        //jQuery will call this method after the animation finishes.
        //Add postback code here
        __doPostBack(theTarget,theArgument);
    });
}

Код изменен с здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...