我尝试了以下(.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&navpanes=1&scrollbar=0&page=1&view=FitH' type='application/pdf' width='100%' height='100%'> </object>";
$('.myviewer').append(markup);
};
});
答案 0 :(得分:9)
要让.trigger
做任何事情,您必须首先绑定事件,而您尚未完成。 onclick=""
不计算在内。
首先使用绑定事件:
$(document).ready(function() {
$('.myviewer').on( "touchstart", function(){
$(this).remove();
});
var isMobile = { //...your original code continues here
然后你可以稍后触发它:
$('.myviewer').trigger('touchstart');