假设我们有一个 div:
<div id="left">Some content</div>
id 为“left”的 div 是可调整大小的 div(可以在浏览器中用鼠标调整大小),当调整大小时,它会接收到当前宽度的 CSS 样式,如下所示:
<div id="left" style="width: 289px;">Some content</div>
我想要实现的是读取#left div的实时事件(或类似的东西)的宽度值,并基于该值添加一些条件(它必须是实时事件,而不是在点击或鼠标释放点击等时读取它.) ...提前感谢您的帮助!
解决方案:
您可以使用自定义绑定函数来实现此目的:
(function(){
var interval;
jQuery.event.special.liveresize = {
setup: function(){
var self = this,
$this = $(this),
$originalContent = $this.width();
interval = setInterval(function(){
if($originalContent != $this.width()) {
$originalContent = $this.width();
jQuery.event.handle.call(self, {type:'liveresize'});
}
},100);
},
teardown: function(){
clearInterval(interval);
}
};
})();
然后就叫它:
$(function() {
$('#left').bind('liveresize', function() {
var actual_width = $(this).width();
if(actual_width < 930)
{
$('#left').addClass('ng-av-small-left');
$('#left').addClass('ng-av-small-right');
} else
{
$('#left div.block div.left').removeClass().addClass('left');
$('#left div.block div.right').removeClass().addClass('right');
}
});
});