Jquery使用超时来执行代码

时间:2014-03-20 12:09:21

标签: javascript jquery

下面的功能会在页面加载时暂停旋转滑块,并在用户单击#close_cross按钮时继续播放。如何添加超过10秒的时间,这样当用户无法单击#close_cross关闭按钮时,滑块仍会恢复播放?

<script>
    // pause slider
    jQuery(document).ready(function() {

jQuery(".rev_slider_wrapper").each(function(){
$this = jQuery(this);
id_array = $this.attr("id").split("_");
id = id_array[2];
jQuery.globalEval( 'revapi'+id+'.bind("revolution.slide.onloaded",function (e)          {revapi'+id+'.revpause();});' );
});
}); 

// play slider on pop up close

    jQuery("#close_cross").on('click', function() {     jQuery(".rev_slider_wrapper").each(function(){
$this = jQuery(this);
id_array = $this.attr("id").split("_");
id = id_array[2];
jQuery.globalEval( 'revapi'+id+'.revresume();' );
}); });

</script>

2 个答案:

答案 0 :(得分:0)

您需要将简历代码移动到单独的函数中。

这是未经测试的,但它应该给你一个想法:

// pause slider
jQuery(".rev_slider_wrapper").each(function(){
  $this = jQuery(this);
  id_array = $this.attr("id").split("_");
  id = id_array[2];
  jQuery.globalEval( 'revapi'+id+'.bind("revolution.slide.onloaded",function (e){revapi'+id+'.revpause();});' );
});

function resumeSlider(){
  jQuery(".rev_slider_wrapper").each(function(){
    $this = jQuery(this);
    id_array = $this.attr("id").split("_");
    id = id_array[2];
    jQuery.globalEval( 'revapi'+id+'.revresume();' );
  });
}

// play slider on pop up close
jQuery("#close_cross").on('click', resumeSlider); 

setTimeout(function(){
  resumeSlider();
  jQuery("#close_cross").off('click');
}, 10000);

另外,正如epascarello所说,我确信没有必要使用globalEval()

答案 1 :(得分:0)

您可以使用基本的setTimeout (@ MDN)功能。

setTimeout(function(){console.log("put the play code here")}, 10000);