JS:什么时候元素变得可见的事件监听器?
我正在构建一个要包含在页面中的工具栏。 它将被包括在内的div将默认显示:无 。 有没有办法让我的工具栏上放置一个事件监听器来监听它是否可见,以便它可以初始化? 或者我将不得不从包含页面传递一个变量?
谢谢
javascript事件处理用户交互,如果你的代码组织得不够,你应该能够在可见性改变的地方调用初始化函数(即你不应该在很多地方改变myElement.style.display,而是调用一个功能/方法,做这个和你可能想要的任何东西)
我有这个相同的问题,并创建了一个jQuery插件来解决它为我们的网站。
https://github.com/shaunbowe/jquery.visibilityChanged
下面是你将如何使用它的基础上你的例子:
$('#contentDiv').visibilityChanged(function(element, visible) {
alert("do something");
});
至少有一种方法,但它不是一个很好的方法。 您可以轮询元素以进行如下更改:
var previous_style,
poll = window.setInterval(function()
{
var current_style = document.getElementById('target').style.display;
if (previous_style != current_style) {
alert('style changed');
window.clearInterval(poll);
} else {
previous_style = current_style;
}
}, 100);
DOM标准还规定了突变事件,但我从来没有机会使用它们,我不确定它们得到了多大的支持。 你会像这样使用它们:
target.addEventListener('DOMAttrModified', function()
{
if (e.attrName == 'style') {
alert('style changed');
}
}, false);
这段代码不在我头顶,所以我不确定它是否可行。
最好和最简单的解决方案将是在显示目标的函数中进行回调。
链接地址: http://www.djcxy.com/p/14609.html上一篇: JS: event listener for when element becomes visible?
下一篇: The preferred way of creating a new element with jQuery