检查元素是否将状态从隐藏更改为可见
Checking if element change state from hidden to visible
可能的重复项:
jQuery事件处理程序:div变得可见/隐藏
我可以将事件设置为在某个元素被隐藏后触发,然后被 js 设置为可见吗?
我还可以检测 js 是否向元素添加了类吗?
我正在使用jQuery
是的。您可以通过事件跟踪类的添加和删除。
您可以使用 DOMAttrModified
事件跟踪此事件 - 顾名思义,每次修改 DOM 中任何元素的任何属性时都会触发该事件。
在这种特殊情况下,我们跟踪我们希望跟踪的元素的 class
属性的修改。
演示:http://jsfiddle.net/techfoobar/dnRUu/2/
在演示中,单击"切换类"按钮将类添加到第一个 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中测试!
也许您可以使用间隔来处理此类事件:
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
}
没有
这样的活动可以订阅。你能做的最好的事情就是定期运行你自己的函数来检查你关心的变化。
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 随时隐藏元素
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 隐藏元素直到加载完成(ng斗篷不是我需要的)
- 在具有类的元素中隐藏元素
- javascript()onclick隐藏元素-dos'我不在firefox工作
- JQueryHide()在按钮中使用元素时不会隐藏元素
- 使用Javascript取消隐藏元素
- 如果鼠标离开父对象,则隐藏元素
- 如何在jquery ajax成功html响应中找到输入隐藏元素
- 基于事件在循环中隐藏元素
- 渐进式增强-不使用CSS隐藏元素
- 隐藏元素后更新滚动条
- jQuery没有隐藏元素
- jQuery隐藏元素在使用CSS显示时保持隐藏状态
- 如何使用javascript在区域外单击时隐藏元素
- 如何在加载网页时隐藏元素
- JS:隐藏元素上的事件侦听器
- HTML 显示/隐藏元素 JS 不起作用