38

我正在使用当前代码:

$('body').mousedown(function() {
        $('div#extras').fadeTo('fast', 1);
});

$('body').mouseup(function() {
        $('div#extras').delay(2000).fadeTo(1500, 0);
});

这在 safari 中效果很好,但是当我上传它并在 ipad 上查看它时它不起作用?

4

4 回答 4

86

对于感兴趣的人,我发现了如何为 ipad 执行此操作:

而不是我在我的问题中使用的代码,你会使用:

$('body').bind( "touchstart", function(e){
        $('div#extras').fadeTo('fast', 1);
});

&

$('body').bind( "touchend", function(e){
        $('div#extras').delay(2000).fadeTo(1500, 0);
});
于 2010-07-21T21:00:48.847 回答
8

不完全是。

苹果文档

引用:

可点击元素是链接、表单元素、图像地图区域或具有 mousemove、mousedownmouseup或 onclick 处理程序的任何其他元素。可滚动元素是具有适当溢出样式、文本区域和可滚动 iframe 元素的任何元素。由于这些差异,您可能需要将一些元素更改为可点击元素,如“<a href="https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents 中所述/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW6" rel="nofollow noreferrer">使元素可点击,”以在 iPhone OS 中获得所需的行为。

(强调我的)

于 2010-07-21T21:01:28.277 回答
6

没有真正回答您的问题,但对于来这里只是为了寻找“ipad 上的 jQuery mousedown/mouseup”的人可能会很方便

我总是使用这个小技巧:

$(element).hover(function() {
   // Do something
});

这在使用 iPad 时触发触摸,并在单击元素外部时反转操作,因为它是悬停事件。例如:

// Assuming the element has 'opacity: 0' in CSS

$(element).hover(function() {
   $(this).animate({'opacity': 1}, 200);
});

在“点击”时创建淡入效果,在“鼠标上”时创建淡出效果。

于 2014-11-05T15:26:38.100 回答
5

旧帖子,但有通用解决方案:

$('body').on('mousedown touchstart',function(e){
    $('div#extras').fadeTo('fast', 1);
});
$('body').on('mouseup touchend',function(e){
    $('div#extras').delay(2000).fadeTo(1500, 0);
});

你会注意到我使用mousedownwithtouchstartmouseupwith touchend。这涵盖了移动和桌面使用。

于 2018-04-02T07:01:19.180 回答