Диалоговое окно пользовательского интерфейса jQuery закрывается при нажатии на заголовок … Иногда

#jquery-ui #jquery-ui-dialog

#jquery-ui #jquery-ui-dialog

Вопрос:

У меня есть диалоговое окно пользовательского интерфейса jQuery с некоторым странным поведением: всякий раз, когда вы щелкаете или дважды щелкаете по заголовку / заголовку диалогового окна, есть вероятность, что оно закроет диалоговое окно, не удаляя модальное наложение (двойные щелчки, похоже, вызывают его чаще, чем щелчки, но оба довольночасто и ни один из них не запускает закрытие в 100% случаев).

Тот факт, что модальный параметр остается позади, заставляет меня думать, что происходит ошибка, но в консоли ошибок нет. У меня был бы соблазн обвинить мой код, но такое поведение происходит даже тогда, когда я инициализирую диалоговое окно вообще без параметров ( $el.dialog({}) ). Я также пробовал настройку {close: $.noop} , но безрезультатно. Однако другие диалоги в других местах нашей кодовой базы не имеют такого поведения (хотя я не могу найти никаких значимых различий между ними, кроме как в CSS).

Кто-нибудь имеет представление о том, что происходит, и как я могу это исправить?

Комментарии:

1. Не могли бы вы поделиться кодом, как в jsFiddle или что-то в этом роде

2. Проблема в том, что нет кода для отображения; если я (буквально) $('<div></div>').dialog({}); нажимаю на заголовок, диалоговое окно все равно закрывается. Как я уже упоминал, могут быть некоторые CSS, влияющие на вещи, но у нас есть тысячи строк CSS, и я понятия не имею, какой бит, в частности, может вызвать что-то подобное.

Ответ №1:

Попробуйте setting .ui-dialog { позиция: исправлена }

Комментарии:

1. Спасибо за ответ (это должно быть частью кода jQuery UI …)

2. Это действительно исправление, и проблема связана с вертикальной прокруткой. Это происходит, когда вы прокручиваете страницу вниз, а затем открываете диалоговое окно. Вот JSFiddle с добавленным вертикальным пробелом, чтобы проиллюстрировать проблему: jsfiddle.net/russellg99/frxtmuhj/6