javascript - 当 div 显示时,JQuery 运行一个函数

标签 javascript jquery html css

我想在显示 div 时运行一个函数。

HTML:

<div id="holder">
    <div id="main1" class="container-fluid">
        <h1>Header 1</h1>
        <div class="btn btn-default pull-right" onclick="show('main2');">Next</div>
    </div>
    <div id="main2" class="container-fluid" style="display:none;">
        <h1>Header 2</h1>
        <div class="btn btn-default pull-right" onclick="show('main3');">Next</div>
    </div>
    <div id="main3" class="container-fluid" style="display:none;">
        <h1>Header 3</h1>
    </div>
</div>

JS:

function show(elementID) {
    var ele = document.getElementById(elementID);
    if (!ele) {
        alert("no such element");
        return;
    }

    var pages = document.getElementsByClassName('container-fluid');
    for (var i = 0; i < pages.length; i++) {
        pages[i].style.display = 'none';
    }

    ele.style.display = 'block';
}

我想在我的 #main3 显示时运行一个函数。功能是设置一个定时器,让#main3显示10秒后,显示#main1

现在如何检测我的 #main3 何时显示?

最佳答案

您可以检查elementID,如果是main3,则设置setTimeout 10000 ms (10s) 并调用show ('main1')ele.style.display = 'block'; 行之后超时,如下所示:

function show(elementID) {
    var ele = document.getElementById(elementID);
    if (!ele) {
        alert("no such element");
        return;
    }

    var pages = document.getElementsByClassName('container-fluid');
    for(var i = 0; i < pages.length; i++) {
        pages[i].style.display = 'none';
    }

    ele.style.display = 'block';

    if(elementID == "main3"){
        setTimeout(function(){ show("main1"); }, 10000);
    }
}

DEMO

关于javascript - 当 div 显示时,JQuery 运行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33257280/

相关文章:

javascript - 如何使用表单数据打印值?

javascript - 如何使用 iframe 动态创建 jquery 对话框?

javascript - 这个JQuery哪里错了?

javascript - 无法获取图像高度,改为获取naturalHeight

javascript - 停止事件监听器

javascript - 全栈应用的 server.js 中符号🌎 的含义

javascript - 使用响应式设计使图像流畅?

java - 如何将一个ArrayList分解并显示为多个表列

javascript - 使用三次贝塞尔曲线更改 Bootstrap 轮播动画持续时间

HTML 中的 JavaScript 和 SVG