监听从display:none到display:block的任何div

125*_*748 5 javascript css jquery

有没有办法监听被显示或隐藏的元素?

我希望断言 - 当元素从隐藏变为显示时 - 将焦点放在新显示元素中的第一个输入元素上

我想到将click事件附加到所有内容并将其放在文档的顶部,认为这会在任何事情之前触发,我可以跟踪被点击的元素next("div")(或其他东西)是否具有css显示属性none,然后设置一个小的超时,然后设置焦点,undefined但当我尝试访问该CSS属性时,我得到

$("html").on("click", "body", function(){
   alert($(this).next("div").css("display")); //undefined
});
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

dez*_*man 0

你可以:

var allEls = $('body *');

function isDisplayBlock(arr) {
    var isBlock = [];
    $.each(arr, function(i, e){
        if ($(e).css('display') === 'block') {
            isBlock.push(e);
        }
    })
    return isBlock;
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何检查它们是否改变,而不仅仅是检查它们是否被阻止。