我可以设置一个事件在隐藏某些元素然后被js设置为可见后触发吗?
我还可以检测 js 是否向元素添加了类吗?
我正在使用 jQuery
是的。您可以通过事件跟踪类的添加和删除。
您可以使用事件来跟踪这一点DOMAttrModified
- 顾名思义,每次修改 DOM 中任何元素的任何属性时都会触发该事件。
在这种特殊情况下,我们跟踪class
我们希望跟踪的元素的属性修改。
演示:http: //jsfiddle.net/techfoobar/dnRUu/2/
在演示中,单击“切换类”按钮将类添加到第一个 DIV。您收到的警报由DOMAttrModified
事件触发。
更多信息在这里:
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);
});
检查元素是否有类名:
if ($('#Element').hasClass('className')) {
// your code
}
没有您可以订阅的此类活动。你能做的最好的就是定期运行你自己的函数来检查你关心的变化。