Javascript 平板电脑上的鼠标删除问题

Javascript 平板电脑上的鼠标删除问题,javascript,android,jquery,ipad,Javascript,Android,Jquery,Ipad,平板电脑上是否有替代“mouseleave”的方法 情景: 在桌面上,列表项显示在'mouseenter'上,隐藏在'mouseleave'上 在平板电脑上,'mouseenter'显示列表项,但当用户单击“其他位置”时,不会将其删除 我不想使用touchstart和touchend 尝试使用jquery在文档上添加单击处理程序。在此新处理程序中,隐藏listitems $(document).on('click:not(#list)', function() { // hide lis

平板电脑上是否有替代“mouseleave”的方法

情景:

在桌面上,列表项显示在
'mouseenter'
上,隐藏在
'mouseleave'

在平板电脑上,
'mouseenter'
显示列表项,但当用户单击“其他位置”时,不会将其删除


我不想使用touchstart和touchend

尝试使用jquery在文档上添加单击处理程序。在此新处理程序中,隐藏listitems

$(document).on('click:not(#list)', function() {
    // hide listitems
});

像这样的。。这可能不是最好的解决方案,但它是一个。

您最好的选择是为触摸设备制作一个替代交互。最简单的方法是在文档中附加一个事件侦听器,当用户点击列表之外时,它会隐藏列表项

$(document).on('click.list', function (e) {
    var $list = $(".list");

    if (!$list.is(e.target) && $list.has(e.target).length === 0) {
        $list.hide();
    }
});
在将事件侦听器附加到文档时,为事件命名名称空间(
'click.list'
)是一种很好的做法


if条件检查事件目标是列表还是其子项之一。

您可以使用。悬停如下所示:

$('.foo').hover(
function () {
$(this).find('h1').addClass("hover").end().find('input').focus();            
        },
function () {
$(this).find('h1').removeClass("hover").end().find('input').val('');            
        }
    );