Javascript 按封面覆盖禁用页面中的多个元素
我有一些元素在一个页面,我想有封面覆盖,以禁用这些元素 我有一个ajax调用,我成功地使用了Javascript 按封面覆盖禁用页面中的多个元素,javascript,jquery,Javascript,Jquery,我有一些元素在一个页面,我想有封面覆盖,以禁用这些元素 我有一个ajax调用,我成功地使用了coverWithOverlay($('.disable')禁用具有类的所有元素。禁用类 以下是函数: function coverWithOverlay($element) { var pos = $element.offset(); var $overlay = $('<div class="inside"></div>').attr({
coverWithOverlay($('.disable')
禁用具有类的所有元素。禁用类
以下是函数:
function coverWithOverlay($element) {
var pos = $element.offset();
var $overlay = $('<div class="inside"></div>').attr({
title: 'this is disabled'
}).css({
position: 'absolute',
backgroundColor: 'white',
opacity: 0.5,
top: pos.top + 'px',
left: pos.left + 'px',
width: $element.outerWidth() + 'px',
height: $element.outerHeight() + 'px'
});
$(document.body).append($overlay);
return $overlay;
}
函数coverWithOverlay($element){
var pos=$element.offset();
var$overlay=$('').attr({
标题:“这是禁用的”
}).css({
位置:'绝对',
背景颜色:“白色”,
不透明度:0.5,
顶部:位置顶部+‘px’,
左:位置左+‘px’,
宽度:$element.outerWidth()+'px',
高度:$element.outerHeight()+'px'
});
$(document.body).append($overlay);
返回$overlay;
}
如果页面中只有一个元素,它就可以工作。我如何对几个要素进行调查?
有些页面有一个或多个要禁用的元素。为什么不尝试类似的方法
function coverWithOverlay($elements) {
$($elements).each(function () {
var $element = $(this);
var pos = $element.offset();
var $overlay = $('<div class="inside"></div>').attr({
title: 'this is disabled'
}).css({
position: 'absolute',
backgroundColor: 'white',
opacity: 0.5,
top: pos.top + 'px',
left: pos.left + 'px',
width: $element.outerWidth() + 'px',
height: $element.outerHeight() + 'px'
});
$(document.body).append($overlay);
});
}
函数coverWithOverlay($elements){
$($元素)。每个(函数(){
var$element=$(此);
var pos=$element.offset();
var$overlay=$('').attr({
标题:“这是禁用的”
}).css({
位置:'绝对',
背景颜色:“白色”,
不透明度:0.5,
顶部:位置顶部+‘px’,
左:位置左+‘px’,
宽度:$element.outerWidth()+'px',
高度:$element.outerHeight()+'px'
});
$(document.body).append($overlay);
});
}
工作小提琴:
也就是说,这将是一种更通用的方法。
小提琴手:jsFiddle可以帮助我们帮助您。另外,您考虑过CSS属性吗?为什么这返回$overlay代码>?是的,它不应该返回覆盖。我只是用它来做其他的事情。这个jquery块UI有帮助,但是为什么鼠标指针总是忙着呢?@Mark:忙的光标显示页面正在做一些动作,如果你想要一个普通的光标,只需将这个css.blockUI.blockOverlay{cursor:default}
添加到你的页面上就好了。但是对于jqueryBlockUI,是否有任何css可以更改其背景颜色?@Mark:$.blockUI({overlycss:{backgroundColor:'#00f'})代码>请看这里,非常感谢您的帮助