在jquery中mousedown/mouseup为ipad工作吗?

Ann*_*nie 37 jquery onmousedown ipad

我正在使用当前代码:

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

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

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

Ann*_*nie 85

对于那些感兴趣的人,我发现了如何为ipad做这个:

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

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

&

$('body').bind( "touchend", function(e){
        $('div#extras').delay(2000).fadeTo(1500, 0);
});
Run Code Online (Sandbox Code Playgroud)

  • $('body').on("mousedown touchstart",function(e){//这可以在桌面和移动设备上同时工作}) (40认同)

scu*_*ffe 8

不完全是.

Apple Docs

引用:

可点击元素是链接,表单元素,图像映射区域或具有mousemove,mousedown,mouseup或onclick处理程序的任何其他元素.可滚动元素是具有适当溢出样式,文本区域和可滚动iframe元素的任何元素.由于存在这些差异,您可能需要将某些元素更改为可单击元素,如" 使元素可单击"中所述,以在iPhone OS中获得所需的行为.

(强调我的)


Jef*_*aal 6

并没有真正回答你的问题,但对于那些来到这里寻找"ipad上的jQuery mousedown/mouseup"的人来说可能会很方便

我总是用这个小技巧:

$(element).hover(function() {
   // Do something
});
Run Code Online (Sandbox Code Playgroud)

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

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

$(element).hover(function() {
   $(this).animate({'opacity': 1}, 200);
});
Run Code Online (Sandbox Code Playgroud)

在"点击"上创建淡入效果,在"鼠标"上创建淡出效果.


Ivi*_*pić 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);
});
Run Code Online (Sandbox Code Playgroud)

您会注意到我使用mousedownwithtouchstartmouseupwith touchend。这包括移动和桌面使用。