没有被称为touchenter事件

时间:2013-02-12 03:09:14

标签: javascript jquery touch ontouchevent

任何人都可以告诉我为什么touchenter事件在这段代码中不起作用。 mouseenter在桌面上运行良好。应该这么简单,但我错过了一些东西。

此处示例 - http://jsfiddle.net/gCEqH/6/

以下完整代码:

<!DOCTYPE html>
<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    </head>

    <body>
        <img id="myImg" src="http://jackiehutchings.com/wp-content/uploads/2011/09/g-plus-icon-96x96.png" />        

        <script>
            $(window).load(function() { 
            $('#myImg').on("touchenter mouseenter", function(event){
                alert('entered!');
            });
        });
        </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

也许这样的事情可行吗?

var elementIdTouching = "";
$('body').on("touchmove", function(e){
    var tList = e.touches; // get list of all touches
    for (var i = 0; i < tList.length; i++) {
        var thisTouch = tList[i]; // not 100% sure about this
        var elementTouching = document.elementFromPoint( 
            thisTouch.screenX, 
            thisTouch.screenY
        );
        if (elementTouching.id != elementIdTouching) {
            elementIdTouching = elementTouching.id;
            if (elementTouching.id == "myImg") {
                alert("entered!");
            }
        }
    }
}).on("touchend", function(e){
    elementIdTouching = "";
});
$('#myImg').on("mouseenter", function(e){
    alert('entered!');
});

tList~ https://developer.mozilla.org/en-US/docs/Web/API/TouchList

免责声明:我没有对此进行测试。