suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Das große DIV enthält das kleine DIV. Wenn Sie auf das kleine DIV klicken, wird auch das große DIV ausgelöst.

Es gibt zwei Klickereignisse. Wenn Sie auf das kleine p klicken, wird auch das große p ausgelöst.
Wenn Sie wie in der Abbildung gezeigt auf den Klick innerhalb des kleinen p klicken, wird auch das große p ausgelöst. Jetzt möchten Sie nur auf das kleine p klicken und nur das kleine Klickereignis wird ausgelöst Es?


Jetzt

某草草某草草2731 Tage vor1313

Antworte allen(8)Ich werde antworten

  • 伊谢尔伦

    伊谢尔伦2017-05-27 17:46:35

    stopPropagation()

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-27 17:46:35

    在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window),被称为事件冒泡。

    //阻止事件冒泡函数
    function stopBubble(e)
    {
        if (e && e.stopPropagation)
            e.stopPropagation()
        else
            window.event.cancelBubble=true
    }

    Antwort
    0
  • 迷茫

    迷茫2017-05-27 17:46:35

    是JS的冒泡(捕获)事件

    类似这样的解决方法蛮简单的

    $('.p1').on('click', function(event) {
        event.preventDefault();
        if ($(event.target).is('.p2')) {
            alert('click 2')
        }else{
            alert('click 1')
        }
    });

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-27 17:46:35

    js冒泡 取消冒泡就行了
    事用事件委托 就不会出现这种问题了

    Antwort
    0
  • 为情所困

    为情所困2017-05-27 17:46:35

    看完这两篇文章不懂来找我:

    http://javascript.info/bubbli...
    https://stackoverflow.com/que...

    Antwort
    0
  • 阿神

    阿神2017-05-27 17:46:35

    我想到有两种解决方法:
    1.阻止事件冒泡。
    事件冒泡是从里面的子元素逐级执行到外面的父元素,当执行子元素的点击事件的时候,需要调用冒泡阻止事件,这样事件就不能传递到上层,去执行上层的事件。
    2.根据引起点击的元素不同来执行不同的事件。
    当点击的元素是子元素引起的,执行A事件,如果不是子元素,则执行B事件。

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-27 17:46:35

    阻止冒泡就可以了,关于事件可看这里 /a/11...

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-27 17:46:35

    按照正常的做法是不会这样触发的,很想知道你到底用什么选择器来绑定点击事件的,你贴一下你的点击代码和你的p的html码更好

    Antwort
    0
  • StornierenAntwort