JQuery Select Time Picker срабатывает на перед загрузкой каждый раз, когда он нажал - PullRequest
0 голосов
/ 03 февраля 2011

Я использую элемент управления ptTimeSelect на моей странице asp.net.У меня есть некоторые javascript / jquery для обработки события onbeforeunload и отображения сообщения, прежде чем пользователь покинет страницу.Тем не менее, элемент управления TimeSelect ТАКЖЕ запускает событие onbeforeunload (в IE 8 я не думаю, что это происходит в Firefox).Это приводит к сбивающим с толку всплывающим окнам о выходе из страницы, когда пользователь фактически не покидает страницу.

У кого-нибудь есть идея, что вызывает это?И как я могу остановить запуск события при нажатии на элемент управления Time Select - но продолжать его, когда пользователь фактически покидает страницу?

Это управление: http://pttimeselect.sourceforge.net/doc/files/jquery-ptTimeSelect-js.html

1 Ответ

1 голос
/ 08 февраля 2011

Я нашел решение в этой публикации переполнения стека:

Internet Explorer вызывает window.onbeforeunload для window.open, а AJAX вызывает

Кажется, проблема в том, чтов IE любая ссылка на странице запускает onbeforeunload при нажатии, если это не ссылка на ту же страницу.

Добавление «return false» к событию onclick каждой ссылки (большинство элементов в элементе управления ptTimeSelect являются ссылками, которые запускают javascript, но никуда не переходят).Поскольку я не хотел на самом деле изменять файл ptTimeSelect.js в своем проекте, я прикрепил свой код события onclick к ссылкам через jquery.Вот код, который я поместил на своей странице (страница, на которой есть экземпляр элемента управления Time Select):

           $('a.ptTimeSelectHr').click(function (e) {
                return false;
            });

            $('a.ptTimeSelectMin').click(function (e) {
                return false;
            });

            $('a.ptTimeSelectHrAmPmCntr').click(function (e) {
                return false;
            });

            $('#ptTimeSelectCloseCntr').children('a').click(function (e) {
                return false;
             });

            $('#ptTimeSelectSetButton').children('a').click(function (e) {
                return false;
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...