【问题标题】:stopPropagation() div inside div onmouseoverdiv onmouseover 内的 stopPropagation() div
【发布时间】:2014-08-10 08:48:03
【问题描述】:

我想把一个 div 放在另一个 div 里面,当用户将鼠标放在父 div 上时,两个 div 就会出现。

问题是,当我将鼠标放在父 div 上时,两个 div 会显示,但是当我将鼠标移到子 div 上时,show() 函数会再次自行执行,我该如何停止呢?

HTML 代码:

<div id="parent" onmouseover="show(this)">
    <div id="child"></div>
</div>

JavaScript 代码:

function show(element) {
    setTimeout(function () {
        opacity(element)
    }, 100);
}

function opacity(element) {
    element.style.opacity = "1"
}

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这可以而且应该只使用 CSS 解决,而不使用 JavaScript。

    Example

    <div id="parent">
        Parent Text
        <div id="child">Child Text</div>
    </div>
    
    #parent {
        opacity: .2;
        transition: .1s opacity;
    }
    
    #parent:hover {
        opacity: 1;
    }
    

    【讨论】:

      【解决方案2】:

      使用 jquery :

      $('#child').hover(function(e){e.stopPropagation();});
      

      使用普通 js : 一个简单的 google 搜索 javascript stopPropagation()

      Javascript : How to enable stopPropagation?

      【讨论】:

      • 谢谢你的回复,但我不想用jquery。
      猜你喜欢
      • 2012-02-04
      • 2011-11-22
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      相关资源
      最近更新 更多