2017-08-18 7 views
0

私はかなり新しいですが、今のようにXをクリックする代わりに、このポップアップを3秒で消える方法を教えてもらえますか?3秒後にポップアップが消える方法

私はclose_popupをほぼどこにでも置こうとしましたが、それでも動作しませんでした。

jQuery(document).ready(function($) { 
    "use strict"; 

    var popup  = $('#yith-wacp-popup'), 
     overlay  = popup.find('.yith-wacp-overlay'), 
     close  = popup.find('.yith-wacp-close'), 
     wrapper  = popup.find('.yith-wacp-wrapper'), 
     wrapper_w = wrapper.width(), 
     wrapper_h = wrapper.height(), 
     close_popup = function(){ 
      // remove class open 
      popup.removeClass('open'); 
      // after 2 sec remove content 
      setTimeout(function() { 
       popup.find('.yith-wacp-content').html(''); 
      }, 2000); 
      $(document).trigger('yith_wacp_popup_after_closing'); 
     }, 
     // center popup function 
     center_popup = function() { 
      var window_w = $(window).width(), 
       window_h = $(window).height(), 
       width = ((window_w - 60) > wrapper_w) ? wrapper_w : (window_w - 60), 
       height = ((window_h - 120) > wrapper_h) ? wrapper_h : (window_h - 120); 

      wrapper.css({ 
       'left' : ((window_w/2) - (width/2)), 
       'top' : ((window_h/2) - (height/2)), 
       'width'  : width + 'px', 
       'height' : height + 'px' 
      }); 
     }; 

    $(window).on('resize', center_popup); 

    $('body').on('added_to_cart', function(ev, fragmentsJSON, cart_hash, button){ 

     if(typeof fragmentsJSON == 'undefined') 
      fragmentsJSON = $.parseJSON(sessionStorage.getItem(wc_cart_fragments_params.fragment_name)); 

     $.each(fragmentsJSON, function(key, value) { 

      if (key == 'yith_wacp_message') { 

       popup.find('.yith-wacp-content').html(value); 

       // position popup 
       center_popup(); 

       popup.addClass('open'); 

       popup.find('a.continue-shopping').on('click', function (e) { 
        e.preventDefault(); 
        close_popup();         
       }); 



       return false; 
      } 
     }); 
    }); 


    // Close box by click close button 
    close.on('click', function(ev){ 
     ev.preventDefault();   
     close_popup(); 
    }); 



}); 
+1

コール – Rex

答えて

3

.delay関数を使用してみましたか?Jquery 1.4以降では、.delay関数を使用できますか?あなたがもしループ内で、オープンPOP_UPたら、このコードを試すことができます

$('#test').delay(3000).fadeOut(); 

$(function() { 
 
$('#test').delay(3000).fadeOut(); 
 
});
#test { 
 
width: 100px; 
 
height: 100px; 
 
background: #ffb; 
 
padding: 10px; 
 
border: 2px solid #999; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="test">test</div>

+0

は、またはあなたもこのような何かを呼び出すことができます3秒の間隔でのsetTimeoutからポップアップを閉じる方法:のsetTimeout(close_popup、3000); –

+0

動作しません、私は何か間違っていると推測しています:Sどこに.delay機能を置くべきですか?ループの中? –

+0

遅れて苦労している場合は、タイムアウトを試してください。次のようなことができます:setTimeout(close_popup()、3000); –

0

:私はjsfiddleコードをご提供していますか?

setTimeout(function() { 
     close_popup(); 
    }, 3000); 
+0

ループに配置したときにうまく動作しませんでした:(私も同じことを外で試しました:S –

関連する問題