Intereting Posts
Настройка Word press Admin – добавление функциональных возможностей страницы на другую аналогичную страницу Меню социальных ссылок отображает значок вместо текста (двадцать четыре) Скачать тему WordPress.com: как? Использовать шаблон страницы для пользовательского контента $ _GET Ограничение видео о wordpress Изображение, выходящее из контейнера Графика перед заголовком – Конкретная категория Как отображать данные из настраиваемых полей, которые я создал? Использование setup_postdata () с многомерным массивом Использовать условные обозначения с помощью wp_enqueue_style для прикрепления таблицы стилей в соответствии с отображаемым типом сообщения Можно ли изменить тему блога с помощью команды XML-RPC? (и если да, то как?) Как отображать заголовок и выдержку при наведении мыши на изображение? Контактная форма 7 «не подлежащих выбору» вариантов в раскрывающемся списке Использование метаданных WordPress с анализируемыми данными ! = и! == оба не всегда работают?

Настройщик: триггеры синхронизированы с помощью виджета

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

введите описание изображения здесь

Является ли это поведение по умолчанию и его можно предотвратить в пользовательском виджете?

Благодаря!

Pinging @WestonRuter

Причиной этого является то, что виджет будет запускать свою логику обновления при change keydown а также об change для данного элемента input . См. https://github.com/WordPress/wordpress-develop/blob/4.7.2/src/wp-admin/js/customize-widgets.js#L891-L907.

Есть некоторые компромиссы, сделанные, когда виджеты были добавлены в customizer для приведения этих PHP-ориентированных интерфейсов в JS-ориентированный контекст. Это не было совершенным, и поэтому это часть причины плагина Feature JS Widgets , чтобы модернизировать, как пользовательские виджеты реализованы в настройщике.

Если вы действительно хотите прослушать, когда виджет действительно изменит свое состояние, вы можете прослушивать базовые изменения setting элемента управления. Этот параметр будет обновляться только один раз после заданного keydown и последующего события change .

Мне как-то удалось это исправить, не знаю, правильно ли это, это в случае сортируемых полей, используя событие остановки и проверяя, находится ли кнопка «Применить» внутри виджета: https://jsfiddle.net/ 6h5t5r6y