我可以设置一个事件在某个元素被隐藏后触发,然后被js设置为可见吗?
我还可以检测js是否已将元素添加到元素中吗?
我正在使用jQuery
答案 0 :(得分:2)
是。您可以通过事件跟踪课程的添加和删除。
您可以使用DOMAttrModified
事件跟踪此事件 - 顾名思义,每当 任何元素元素在DOM中的任何属性被触发时改性。
在这种特殊情况下,我们会跟踪我们希望跟踪的元素的class
属性的修改。
演示: http://jsfiddle.net/techfoobar/dnRUu/2/
在演示中,单击“切换类”按钮将类添加到第一个DIV。您收到的警报会被DOMAttrModified
事件触发。
更多信息:
http://www.w3.org/TR/DOM-Level-3-Events/#events-MutationEvent
免责声明:仅在Mozilla Firefox中测试过!
答案 1 :(得分:1)
也许您可以使用间隔来处理此类事件:
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
}
答案 2 :(得分:0)
您可以订阅此类活动。您可以做的最好的是定期运行您自己的功能,以检查您关心的更改。