use*_*859 8 jquery triggers ipad
我试过以下(.myviewer是div)...
$('.myviewer').click();
and
$('.myviewer').trigger('touchstart');
and
$('.myviewer').trigger('click');
Run Code Online (Sandbox Code Playgroud)
所有工作都在电脑上,但不适用于iPad.我究竟做错了什么?
这是html页面的主体看起来像......
<body>
<div class="myviewer" onclick="window.open('myPDFFile.pdf');">Programmatically clicked</div>
</body>
Run Code Online (Sandbox Code Playgroud)
在这里解决这个是我的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&navpanes=1&scrollbar=0&page=1&view=FitH' type='application/pdf' width='100%' height='100%'> </object>";
$('.myviewer').append(markup);
};
Run Code Online (Sandbox Code Playgroud)
});
对于.trigger做任何事情,你必须在事件第一绑定,你有没有做过.onclick=""不算数.
要首先使用绑定事件:
$(document).ready(function() {
$('.myviewer').on( "touchstart", function(){
$(this).remove();
});
var isMobile = { //...your original code continues here
Run Code Online (Sandbox Code Playgroud)
然后你可以在以后触发它:
$('.myviewer').trigger('touchstart');
Run Code Online (Sandbox Code Playgroud)