jquery 检查 元素 状态 是否 从 隐藏 更改 为 可见 [ 重复 ]

osh3o9ms  于 2022-11-22  发布在  jQuery
关注(0)|答案(3)|浏览(90)
    • 此 问题 在 此处 已有 答案 * * :

10 年 前 就 关门 了 。

    • 可能 重复 : * *

jquery event handler: div becomes visible/hidden 的 最 大 值
我 可以 设置 一 个 事件 在 某 个 元素 被 隐藏 然后 被 js 设置 为 可见 之后 触发 吗 ?
我 还 可以 检测 js 是否 为 元素 添加 了 类 吗 ?
我 正在 使用 jQuery

8i9zcol2

8i9zcol21#

可以 。 您 可以 通过 事件 跟踪 类 的 添加 和 删除 。
您 可以 使用 DOMAttrModified 事件 来 跟踪 这 一 点 - 正如 名称 所 示 , 每次 修改 DOM 中 * any * 元素 的 * any * 属性 时 都会 触发 该 事件 。
在 这个 特殊 的 例子 中 , 我们 跟踪 对 我们 希望 跟踪 的 元素 的 class 属性 的 修改 。

在 演示 中 , 单击 " Toggle Class " 按钮 将 类 添加 到 第 一 个 DIV 。 您 得到 的 警报 由 DOMAttrModified 事件 触发 。
更多 信息 请 访问 :
https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference?redirectlocale=en-US&redirectslug=DOM_Events 格式
http://www.w3.org/TR/DOM-Level-3-Events/#events-MutationEvent

  • 免责 声明 * :仅 在 Mozilla Firefox 中 测试 !
qnyhuwrf

qnyhuwrf2#

也许你可以用interval来处理这样的事件:

function checkIt () {
    if ($('#Element').length > 0) {
        if($('#Element').is(':hidden') == true) {
           // add class name
            alert('Element was hidden');
            $('#Element').removeClass('hidden').addClass('visible');

            // or toggle class name
            //$('#Element').toggleClass('className');

            // or remove class name
            //$('#Element').removeClass('className');

            // if you want to clear the interval
            //clearInterval(listenerID);
        }
    }
}

var listenerID;
$(function(){
    listenerID = setInterval(checkIt, 500);
});

http://jsfiddle.net/KFGrL/2/
要检查元素是否具有类名,请执行以下操作:

if ($('#Element').hasClass('className')) {
    // your code
}
uqxowvwt

uqxowvwt3#

没有 这样 的 事件 你 可以 订阅 。 你 能 做 的 最 好 的 就是 定期 运行 你 自己 的 函数 来 检查 你 关心 的 变化 。

相关问题