0

フォームを含むポップアップオーバーレイのあるページがあります。これは20秒後に自動的に表示されるか、divのクリックアクションで表示されます。

フォームの送信後にページが更新されたときにオーバーレイのタイマーが再開しないように、またオーバーレイのリンクをクリックしてもタイマーが継続しないようにするために機能する必要があります-基本的に必要ですオーバーレイが一度だけトリガーされるようにトリガーされたかどうかを覚えておいてください。

関数のjqueryは次のとおりです。

//popup button click function
  $('#popup_launcher').click(function(){
    $('#overlay').show(1000);
         $('html, body').animate({scrollTop:0}, 'slow');
      return false;
 });

 //close button click function
  $('#close').click(function(){
    $('#overlay').hide(1000);
 });

// popup timer function - change last value eg 20000 (20 seconds) to set time in milliseconds
        setTimeout(function() {  
                $('#overlay').show(1000);
                $('html, body').animate({scrollTop:0}, 'slow');
}, 20000);

このページはここで開発されています(フォームの送信はまだアクティブではありません): http ://www.tjsmarketing.co.uk/testarea/newquotepage/mk2/template.php?id = 75890701助けてくれてありがとう、アーロン。

4

2 に答える 2

1
$('#popup_launcher').one('click', (function(){
    $('#overlay').show(1000);
    $('html, body').animate({scrollTop:0}, 'slow');
    return false;
});

これにより、クリック イベントが 1 回だけ実行されてから、それ自体が削除されます。

于 2013-03-13T17:42:43.420 に答える
0

sessionStorage を使用します。

// on page load
sessionStorage.overlay = 0;

// on click
sessionStorage.overlay = 1;

// time triggers overlay
sessionStorage.overlay = 2;

取得するには:

if(sessionStorage.overlay < 2){
    // load form magic
}

必要に応じて、1 対 0 の if else ロジックを含めることができます。ここでは、例として単純にしています。

これは、すべての更新にわたって保持されます。これは IE8+ とすべての実際のブラウザで動作することに注意してください。足の不自由な人のために、ポストバック時に検出する別のスクリプトを作成できます。ブラウザのサポートを検出するには:

if(window.sessionStorage){
    // do the above code
} else {
    // reference postback script
}

これはすべての人をカバーするはずです。

于 2013-03-13T17:46:07.933 に答える