ホーム>source

フォームを移動するhtml要素を含むwebappを作成しようとしていましたdiv アントへdiv クリックすると、ユーザーがその要素を1秒以上保持したときにイベントを起動できるようになります。だから私はこのコードを持っています

$(document).on("click",'.card', function() {
    var card=$(this).parent();
    if(card.parent().attr('id')==="options"){
          card.appendTo("#choice");
    }
    else{
        card.appendTo("#options");
    }
});
var timeoutId = 0;
$('.card').on('pointerdown', function() {
    timeoutId = setTimeout(showModal, 1000);
}).on('pointerup mouseleave', function() {
    clearTimeout(timeoutId);    
});

そして、それはほとんど問題ありません。問題は、要素をクリックしたときに発生します。必要に応じて別のdivに追加されますが、モバイルポインターはまだその上にあるため、別の要素で 'hold'イベントを発生させようとすると、前の要素からの 'pointerup'イベントが発生した直後に動作しません「pointerdown」イベント(したがって、次の要素を2回保持する必要があります)。

クリックイベント関数に単純なブールフラグを追加することで対処しましたので、「pointerup」イベントの次の最初の呼び出しをブロックしていますが、これは非常にいソリューションです。 これを改善する方法はありますか?たぶん、クリック後に「pointerup」イベントを手動で呼び出す方法がありますか?

あなたの答え
  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ Linux用のバイナリアプリケーションを配布する最良の方法は何ですか?