Can I put delay(500) before an addClass()?

2019-01-13 16:22发布

问题:

$(document).ready(function(){
    $("#info-text-container").click(function(){
        $("#info-text").delay(500).addClass("info-text-active");
    });   
});

This does not put an delay on it when it gets clicked. Which I want to accomplish. Why and is this hackable, possible to overcome? Thanks!

回答1:

delay only works with animating methods, you can use setTimeout function:

$("#info-text-container").click(function(){
    setTimeout(function(){
       $("#info-text").addClass("info-text-active");
   }, 500);
});


回答2:

Not quite like that, but like this for example:

$("#info-text").delay(500).queue(function(next) {
  $(this).addClass("info-text-active");
  next();
});