我想在点击时启用叠加div
,并在点击时将其停用。
现在我的代码看起来像这样。也许.on .off
使用不当?
$(function() {
$("#sec_a_div").on("click","#wrapper_overlay");
var docHeight = $(document).height();
$("#wrapper_overlay")
.height(docHeight)
.css({
'opacity' : 0.4,
'position': 'absolute',
'top': 0,
'left': 0,
'background-color': '#666666',
'width': '100%',
'z-index': 100
})
$.off("click","#wrapper_overlay");
});
答案 0 :(得分:2)
您可以使用show()
和hide()
来“启用”并“禁用”叠加层:
$("#sec_a_div").on("click", function() {
$("#wrapper_overlay").show();
});
$("#wrapper_overlay")
.height($(document).height())
.css({
"opacity": 0.4,
"position": "absolute",
"top": 0,
"left": 0,
"background-color": "#666666",
"width": "100%",
"z-index": 100,
"display": "none"
})
.on("click", function() {
$(this).hide();
});
答案 1 :(得分:2)
我想你想要以下内容:
$(function() {
var docHeight = $(document).height();
var overlay = $("#wrapper_overlay")
.height(docHeight)
.css({
'opacity' : 0.4,
'position': 'absolute',
'top': 0,
'left': 0,
'background-color': '#666666',
'width': '100%',
'z-index': 100
}).hide();
overlay.on('click', function(){
$(this).hide();
});
$("#sec_a_div").on('click', function(){
overlay.show();
});
});
了解jQuery的.on
和.off
方法并不难:
$(elementSelector).on(eventName, eventHandler);
$(elementSelector).off(eventName, eventHandler);
<强>其中:强>
elementSelector
可以是CSS选择器字符串,DOM对象集合或之前创建的jQuery选择。eventName
是事件的名称,可以是默认值之一(click
,mouseover
,keydown
等)或触发的自定义事件通过$(elementSelector).trigger(eventName);
电话eventHandler
是事件发生时执行的函数,其中给该函数的第一个参数是jQuery的事件对象。还
$(elementSelector).on('click', function(){
});
与
相同$(elementSelector).click(function(){
});
答案 2 :(得分:1)
你最好把CSS放在一个类
中CSS
#wrapper_overlay
{
opacity : 0.4;
position: absolute;
top: 0;
left: 0;
background-color: #666666;
width: 100%;
z-index: 100;
display:none;
}
JAVASCRIPT
$("#sec_a_div").on("click",function () {
$("#wrapper_overlay")
.height($(document).height())
.show();
});
$("#wrapper_overlay").on("click", function() { $(this).hide());