gpt4 book ai didi

javascript - jQuery(事件): watch element style

转载 作者:数据小太阳 更新时间:2023-10-29 04:53:38 44 4
gpt4 key购买 nike

假设有这样的元素

<div class="watch-me" style="display: none;">Watch Me Please</div>

我们可以看到上面样式的元素是display: none,我如何制作脚本来观察这个元素。当该元素样式更改为 display: block 时,将触发一些代码。

非常感谢...

最佳答案

据我所知,唯一的方法就是使用计时器。

我创建了一个小的 jQuery 插件(是的,就在这里,现在),它针对 jQuery 集执行此操作:

编辑 这个插件现在在 GitHub 上:https://github.com/jacobrelkin/jquery-watcher

$.fn.watch = function(property, callback) {
return $(this).each(function() {
var self = this;
var old_property_val = this[property];
var timer;

function watch() {
if($(self).data(property + '-watch-abort') == true) {
timer = clearInterval(timer);
$(self).data(property + '-watch-abort', null);
return;
}

if(self[property] != old_property_val) {
old_property_val = self[property];
callback.call(self);
}
}
timer = setInterval(watch, 700);
});
};

$.fn.unwatch = function(property) {
return $(this).each(function() {
$(this).data(property + '-watch-abort', true);
});
};

用法:

$('.watch-me').watch('style', function() {
//"this" in this scope will reference the object on which the property changed
if($(this).css('display') == 'block') {
//do something...
}
});

要清除此属性观察器:

$('.watch-me').unwatch('style');

关于javascript - jQuery(事件): watch element style,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4567987/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com