我遇到了一个问题,我需要在另一个(较大的)函数中使用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
。
答案 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);
});