0

私はタブ上で非常に単純なマウス入力を行って子のdivをフェードインしますが、タッチデバイスが近いリンクをタップして子をフェードアウトできるようにしたいです。それはスムーズに機能しています。

iOSユーザーがタブをもう一度タップして子をフェードインすると、フェードインしてすぐにフェードアウトします。3回目は、フェードインすらしません。

初めてのように、タブをタップするたびにフェードインするにはどうすればよいですか?

jQuery

    $('#form').on({
    mouseenter: function () {
        clearTimeout( $(this).data('timeoutId') );
        $(this).children('div').fadeIn(300);
        $('#oops').fadeIn(80);
    },
    mouseleave: function() {
        var self = this;
        var timeoutId = setTimeout( function() {
            $(self).children('div').fadeOut(700);
                $('#oops').fadeOut(300);
        }, 700);
        $(self).data('timeoutId', timeoutId);
    }

});
$('#closer').click(function(){
    $('.hiding').fadeOut(700);
    $('#oops').fadeOut(400);                                    
});

</ p>

これがフィドルです:http://jsfiddle.net/natejones/mnWb6/

4

1 に答える 1

0

ホバリングとまったく同じように動作させたい場合は、

$('#form').live('touchstart', function() {
   $(this).trigger('mouseenter');
});
$('#form').live('touchend', function() {
   $(this).trigger('mouseleave');
});

それは正しいコードだと思いますが、そうでない場合は、それがアイデアです。別のことをしたい場合は、touchstart/touchendで定義できます。これはiOSにのみ当てはまると思いますが、間違っている可能性があります。タッチスタートは指が画面に触れたときであり、タッチエンドは指が画面から離れたときです。指が画面上にあり、移動しているときのタッチムーブもあります。

于 2012-06-01T14:52:53.313 に答える