微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用jquery在iPad上触发触摸事件的正确方法是什么

我试过以下(.myviewer是div)…
$('.myviewer').click();

  and
$('.myviewer').trigger('touchstart');

  and
$('.myviewer').trigger('click');

所有工作都在电脑上,但不适用于iPad.我究竟做错了什么?

这是html页面的主体看起来像……

<body>
    <div class="myviewer" onclick="window.open('myPDFFile.pdf');">Programmatically clicked</div>
</body>

在这里解决这个是我的jquery代码

$(document).ready(function() {
var isMobile = {
    Android : function() {
        return navigator.userAgent.match(/Android/i) ? true : false;
    },BlackBerry : function() {
        return navigator.userAgent.match(/BlackBerry/i) ? true : false;
    },iOS : function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
    },Windows : function() {
        return navigator.userAgent.match(/IEMobile/i) ? true : false;
    },any : function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());                               }
}; 

if(isMobile.any()) {
    $('.myviewer').clck();  //this does works on computers but not on iPad
}else {
    var markup = "<object   data='myPDFFile.pdf#toolbar=1&amp;navpanes=1&amp;scrollbar=0&amp;page=1&amp;view=FitH' type='application/pdf' width='100%' height='100%'> </object>";
    $('.myviewer').append(markup);
};

});

解决方法

要让.trigger做任何事情,你必须首先绑定事件,而你还没有完成. onclick =“”不计算在内.

要首先使用绑定事件:

$(document).ready(function() {
    $('.myviewer').on( "touchstart",function(){
        $(this).remove();
    });

    var isMobile = { //...your original code continues here

然后你可以在以后触发它:

$('.myviewer').trigger('touchstart');

原文地址:https://www.jb51.cc/jquery/178190.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐