点击div

时间:2013-09-05 17:16:08

标签: javascript jquery css html

在通知悬停时,我希望它使不透明度变为半透明,并且能够像在此通知插件中一样点击它Pines Notify

我尝试使用pointer-events:none,但随后它禁用了DOM元素,因此jQuery无法处理此元素。我需要jQuery在悬停和悬停时执行代码。怎么办呢?

4 个答案:

答案 0 :(得分:6)

为了能够点击div,请使用以下

  1. 隐藏叠加div
  2. 触发覆盖元素的点击
  3. 再次显示div
  4. http://jsfiddle.net/H6UEU/1/

    $('#front-div').click(function (e) {
        $(this).hide();
        $(document.elementFromPoint(e.clientX, e.clientY)).trigger("click");
        $(this).show();
    });
    $(".tobeclicked").click(function(){
        $("#result").append("clicked<br />");
    });
    

答案 1 :(得分:3)

以下是:

$(".above").click(function(e) {
    // Hide the element so we can reach the element below.
    $(this).hide(0);

    // Fetch the underlying element.
    var below = $(document.elementFromPoint(e.clientX, e.clientY));

    // Trigger a click on the underlying element at the earliest convenience.
    setTimeout(function() {
        below.trigger("click");
    });

    // Display the element again.
    $(this).show(0);
});

$(".below").click(function() { alert("Below clicked!"); });

setTimeout块使最顶层的元素在基础元素上的click事件之前重新出现。

示范:http://jsfiddle.net/t86aV/

答案 2 :(得分:2)

使用将:hover选择器应用于父div和子div上的pointer-events: none指令的组合。

https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

JSFiddle

HTML

<div class="container">
    <div class="clickthrough">Mouseover</div>
    <button onClick="alert('click!');">Click me</button>
</div>

CSS

.container {
    position: relative;
}

.clickthrough {
    position: absolute;
}

.container:hover .clickthrough {
    opacity: 0.25;
    pointer-events: none;
}

答案 3 :(得分:0)

如果使用具有高z指数的内部DIV怎么办? 例如:

<style>
    .sub {
        position: relative;
        background: #99f;
        width: 100px;
        height: 100px;
    }
    .top {
        position: absolute;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
        z-index: 2;
    }
    .opacityLayer {
        position: absolute;
        background: #fff;
        width: 100px;
        height: 100px;
        opacity: 0.5;
        left: 30px;
        top: 30px;
    }
</style>
<a href="#"><div class="sub"><div class="top"></div></div></a>
<div class="opacityLayer"></div>