Intereting Posts
Создание и публикация эскизов Правильное регулярное выражение для кеша Nginx FastCGI? Добавить / echo div с помощью кода Analytics для функции в functions.php Перенаправить домой на другую страницу с помощью htaccess Письма, отправленные с локального веб-сервера wp, отклоняются от Siren? Использование функции WordPress selected () Условный логотип сайта (категория) Есть ли способ интегрировать WordPress с Imgur для хостинга изображений? Как отсортировать цикл после большинства просмотров Отправлять уведомление по электронной почте пользовательской роли пользователя, когда файл загружается в папку для загрузки WooCommerce: не удается использовать wc_get_products для пользовательских конечных точек API REST Как изменить каталог загрузки файлов на версии 3.5? Пользовательский класс post, генерирует уникальный идентификатор от 1 до x в зависимости от количества сообщений? Основной вызов WordPress AJAX Сила 404 перенаправляется на родину?

WordPress Iris Color Picker добавляет события касания iOS

Я внедрил Iris Color Picker в передний план моей темы благодаря помощи, предоставленной в этом вопросе, и все хорошо работает на настольном ПК. Однако кажется, что когда дело доходит до устройства iPad, сборщик цветов работает не так, как ожидалось. Событие перетаскивания мыши не распознается, однако щелчок по области цвета работает, это похоже на то, что событие mousedrag не распознается.

Является ли это известной проблемой, и возможно ли, что я могу использовать функции в наборе цветов?

После небольшого расследования следующий код добавит события касания к сборщику Iris, который использует jQuery UI. Мне нужно было сделать ручку выбора цвета 25px x 25px, поэтому ее легче захватить на iPad, но кроме этого это работает:

$(document).on({ touchstart: touchHandler, touchmove: touchHandler, touchend: touchHandler, touchcancel: touchHandler }); function touchHandler(event) { // trick to add support for touch event to elements/widgets that do not support it // by convetting convert touchevents into mouseevents // only apply this trick to ui-draggable elements if ( ! $(event.target).hasClass('ui-draggable') ) { return; } var touches = event.changedTouches, first = touches[0], type = ""; switch(event.type) { case "touchstart": type = "mousedown"; break; case "touchmove": type="mousemove"; break; case "touchend": type="mouseup"; break; default: return; } // convert touchevents into mouseevents var simulatedEvent = document.createEvent("MouseEvent"); simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null); first.target.dispatchEvent(simulatedEvent); event.preventDefault(); }