jQuery(event): watch element style(jQuery(event):监视元素样式)
问题描述
假设有这样的元素
<div class="watch-me" style="display: none;">Watch Me Please</div>
我们可以看到上面的元素样式是display: none
,我如何制作脚本来观看这个元素.当该元素样式更改为 display: block
时会触发一些代码.
as we can see the element above style is display: none
, how can i make script to watch this element. when that element style is change to display: block
then there is some code will be trigger.
非常感谢...
推荐答案
据我所知,唯一的方法就是使用计时器.
As far as I know, the only way to do this would be with a timer.
我创建了一个小型 jQuery 插件(是的,就在这里,现在),它针对 jQuery 集执行此操作:
I created a small jQuery plugin (yes, right here, right now) that does this against a jQuery set:
EDIT 这个插件现在在 GitHub 上:https://github.com/jacobrelkin/jquery-watcher
EDIT this plugin is now on 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');
这篇关于jQuery(event):监视元素样式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:jQuery(event):监视元素样式
基础教程推荐
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 直接将值设置为滑块 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01