簡體   English   中英

如何僅在調用函數時添加延遲?

[英]How to add delay only when the function is called?

我正在嘗試延遲調用該函數。

       window.setInterval(function(){

        //$('.product-display').delay(3000).hide();
        document.getElementById('product-list-display').style.display = "none";

       },3000);

上面的代碼在 3 秒后隱藏 div,上面的代碼片段在 show div 函數中調用。 我需要做的是,我只想在調用 show div 函數時調用上述延遲函數……現在該函數每 3 秒執行一次,即我使用 setInterval 進行隱藏。 但我只想在調用 show div 3 秒后隱藏。 我怎樣才能做到這一點? 我可以使用 jquery 嗎?

function showdiv(city, imagesrc, timeout)
{
   window.setTimeout(function() {

    document.getElementById('city-order').innerHTML = "";
    document.getElementById('order-product').innerHTML = "";

    $('.product-display').addClass("zoomin");  

    document.getElementById('product-list-display').style.display = "block";

    var order_placed_city = document.getElementById('city-order');
    var content = document.createTextNode(city);
    order_placed_city.appendChild(content);

    var product_order = document.getElementById('order-product');
    var elem = document.createElement("img");
    product_order.appendChild(elem);

    elem.src = imagesrc;

  },timeout); 

   window.setTimeout(function(){
         //$('.product-display').delay(3000).hide();
         document.getElementById('product-list-display').style.display = "none";
   },3000);
}

將隱藏 setTimeout 1 行向上移動:

function showdiv(city, imagesrc, timeout)
{
    window.setTimeout(function() {
        document.getElementById('city-order').innerHTML = "";
        document.getElementById('order-product').innerHTML = "";
        $('.product-display').addClass("zoomin");  
        document.getElementById('product-list-display').style.display = "block";
        var order_placed_city = document.getElementById('city-order');
        var content = document.createTextNode(city);
        order_placed_city.appendChild(content);
        var product_order = document.getElementById('order-product');
        var elem = document.createElement("img");
        product_order.appendChild(elem);
        elem.src = imagesrc;

        window.setTimeout(function(){
            //$('.product-display').delay(3000).hide();
            document.getElementById('product-list-display').style.display = "none";
        },3000);

    },timeout); 
}

嘗試使用回調函數來實現這一點。

function showdiv(city, imagesrc, timeout)
{
  window.setTimeout(function() {
  document.getElementById('city-order').innerHTML = "";
  document.getElementById('order-product').innerHTML = "";
  $('.product-display').addClass("zoomin");  
  showDiv(function(){   window.setTimeout(function(){
    //$('.product-display').delay(3000).hide();
    document.getElementById('product-list-display').style.display = "none";
   },3000);});
  var order_placed_city = document.getElementById('city-order');
  var content = document.createTextNode(city);
  order_placed_city.appendChild(content);
  var product_order = document.getElementById('order-product');
  var elem = document.createElement("img");
  product_order.appendChild(elem);
  elem.src = imagesrc;
  },timeout); 
}

function showDiv(callback){
  document.getElementById('product-list-display').style.display = "block";
  callback();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM