WordPress Iris颜色选择器添加iOS触摸事件

时间:2013-02-19 作者:Dwayne Charrington

由于中提供的帮助,我在主题的前端实现了一个虹膜颜色选择器this question 所有这些都可以在桌面上正常工作。然而,对于iPad设备来说,颜色选择器似乎并没有按预期工作。无法识别鼠标拖动事件,但是在颜色区域周围单击会起作用,就像无法识别鼠标拖动事件一样。

这是一个已知的问题吗?是否有一种方法可以将功能插入颜色选择器?

1 个回复
SO网友:Dwayne Charrington

经过一点调查,下面的代码将向使用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();
    }

结束

相关推荐

通过wp-admin和iOS应用程序发布,涉及相同的挂钩和触发器?

我有一个add_action 在函数中。php,该操作用于save_post 我正在运行的函数命名为set\\u attachment\\u url。我只是在帖子上获取第一个附件,并用该附件的URL设置一个自定义字段。好消息是,当我从wp管理员添加内容时,一切都很好。但当我从iOS应用程序添加内容时,我不会得到相同的结果。我必须添加帖子,点击帖子,单击“更新”,然后THEN 它起作用了。虽然我学得很快,但我对钩子和每一个钩子何时被解雇的了解还不够。任何人都能发现问题所在,为什么在iOS上insert不起作