如何在setTimeout函数JS中进行数据模式的工作

时间:2018-09-28 11:13:53

标签: javascript jquery

我遇到了一个问题,我需要在另一个(较大的)函数中使用setTimeout,但是如果将其放在其中,该波纹管将无法工作:

$('#'+$(this).data('modal')).show();

如何使其在setTimeout这样的函数中起作用:

setTimeout(function(){
  $('#'+$(this).data('modal')).show(); });

有什么想法吗?

///我只需要将其设置为setTimeout,否则就没有其他选项,例如.delay()等。

//如果没有setTimeout,则可以完美地与

一起使用

$('.modal-trigger').on('click', function(){

data-modal="modal-identificator"元素内的button

3 个答案:

答案 0 :(得分:1)

可能是,您的回调不知道this。尝试这样做:

setTimeout(function(){
  $('#'+$(this).data('modal')).show();
}.bind(this), 5000);

答案 1 :(得分:1)

在setTimout函数中,$(this)引用了另一个上下文。要解决您的问题,我认为将$(this)变量存储在本地变量中就足够了:

let _this = $(this);
setTimeout(function() {....}

答案 2 :(得分:0)

        $("#modal").modal("show").on("shown", function () {
         window.setTimeout(function () {
         }, 5000);
         });