我试过以下(.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>
$(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&navpanes=1&scrollbar=0&page=1&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');