Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按封面覆盖禁用页面中的多个元素_Javascript_Jquery - Fatal编程技术网

Javascript 按封面覆盖禁用页面中的多个元素

Javascript 按封面覆盖禁用页面中的多个元素,javascript,jquery,Javascript,Jquery,我有一些元素在一个页面,我想有封面覆盖,以禁用这些元素 我有一个ajax调用,我成功地使用了coverWithOverlay($('.disable')禁用具有类的所有元素。禁用类 以下是函数: function coverWithOverlay($element) { var pos = $element.offset(); var $overlay = $('<div class="inside"></div>').attr({

我有一些元素在一个页面,我想有封面覆盖,以禁用这些元素

我有一个ajax调用,我成功地使用了
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'})请看这里,非常感谢您的帮助