8

私は次のことを試しました(.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);
};      

});

4

1 に答える 1

11

.trigger何かを行うには、最初にイベントをバインドする必要がありますが、まだ行っていません。onclick=""カウントされません。

イベントを最初にバインドするには、次を使用します。

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

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

その後、後でトリガーできます。

$('.myviewer').trigger('touchstart');
于 2012-06-03T22:02:59.980 に答える