Вызов функции Javascript / JQuery при обратной передаче для страницы ASP.NET/C# - PullRequest
1 голос
/ 29 апреля 2011

Я работаю с плагином JQuery под названием «Tab Slide Out», ссылка здесь: http://wpaoli.building58.com/2009/09/jquery-tab-slide-out-plugin/

Я пытаюсь использовать его в качестве метода обратной связи.На слайде есть форма и кнопка отправки.Теперь, когда вы нажимаете «Отправить», это, конечно, вызывает обратную передачу, и страница загружается, но окно обратной связи возвращается в закрытое состояние.Я хочу, чтобы окно автоматически открывалось при обратной передаче.Вот пример веб-сайта, который использует плагин и работает так, как я хочу, чтобы он работал: http://thedemo.ca/

Теперь я заметил, что в скрипте есть это при начальной загрузке страницы:

jQuery('.slide-out-div').tabSlideOut({
  tabHandle: '.handle',
  pathToTabImage: 'typo3conf/ext/stw_jquery_feedback/images/feedback-btn-right.png', 
  imageWidth: '32px',
  imageHeight: '167px',
  tabLocation: 'right',
  speed: 300,
  action: 'click',
  topPos: '200px',
  fixedPosition: true,
  onLoadSlideOut: false
});

И затем при обратной передаче с помощью кнопки отправки:

jQuery('.slide-out-div').tabSlideOut({
  tabHandle: '.handle',
  pathToTabImage: 'typo3conf/ext/stw_jquery_feedback/images/feedback-btn-right.png', 
  imageWidth: '32px',
  imageHeight: '167px',
  tabLocation: 'right',
  speed: 300,
  action: 'click',
  topPos: '200px',
  fixedPosition: true,
  onLoadSlideOut: true
}); 

Обратите внимание на последний параметр onLoadSlideOut.Как это возможно?С учетом сказанного, я думаю, что самым простым решением было бы вызвать щелчок на tabHandle, в свою очередь выдвинув вкладку.

Итак, я думаю, что мой реальный вопрос в том, как я могу позвонить, щелкнув по .handle.

Вот ссылка на мою тестовую среду моего кода: http://jakeism.info/test/

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Они визуализируют скрипт динамически. В asp.net самым простым способом сделать это было бы что-то в вашем aspx / ascx, например:

<script type="text/javascript">
jQuery('.slide-out-div').tabSlideOut({
  tabHandle: '.handle',
  pathToTabImage: 'typo3conf/ext/stw_jquery_feedback/images/feedback-btn-right.png', 
  imageWidth: '32px',
  imageHeight: '167px',
  tabLocation: 'right',
  speed: 300,
  action: 'click',
  topPos: '200px',
  fixedPosition: true,
  onLoadSlideOut: <% Response.Write(Page.IsPostBack ? "true" : "false") %>
}); 
</script>

Обратите внимание на скриптлет для onLoadSlideOut. Теперь эта логика, вероятно, не будет делать именно то, что вы хотите - например, любой постбэк заставил бы его сделать открытым. Поэтому просто замените все, что подходит в качестве условия.

Лучший способ сделать это - разместить на WebService, используя ajax, вместо публикации всей страницы, так что у вас вообще нет обратной передачи. Затем просто аккуратно закройте слайд, сообщив пользователю, что его отзывы получены.

0 голосов
/ 29 апреля 2011

Я бы сказал, что вам лучше всего подать заявку с помощью ajax-звонка, так как вы можете затем выполнить некоторую проверку на стороне клиента и т. Д., И в случае успеха вы можете вставить ее обратно. Мир - это ваша устрица.

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

...