标签: event-bubbling

事件冒泡和停止传播

是什么区别 event.bubbles,以false对任何事件,并设置event.stopPropagation()stopImmediatePropagation()同时处理事件?

我正在使用Flex4和AS3.

apache-flex actionscript-3 event-bubbling event-propagation

10
推荐指数
2
解决办法
2万
查看次数

防止滚动冒泡

如何防止滚动冒泡?

以下示例不起作用:

<!DOCTYPE html> 
<html> 
    <head> 
        <title>Scroll Bubbling</title>
        <style>
            #menu {
                width: 80px;
                height: 150px;
                background: red;
                overflow: auto;
            }
        </style>
        <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
        <script type="text/javascript">
            function isScrollOnBound( scrollContainer ) {
                if ( $( scrollContainer ).scrollTop() === 0 || 
                     $( scrollContainer ).scrollTop() + $( scrollContainer ).innerHeight() >= $( scrollContainer )[0].scrollHeight ) {
                    return true;
                } else {
                    return false;
                }
            }

            $(function() {                  
                $( '#menu' ).on( 'scroll', function(e) {
                    if ( isScrollOnBound( this ) ) {
                        e.stopPropagation();
                    }                   
                });

                $( …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery scroll event-bubbling

10
推荐指数
1
解决办法
3598
查看次数

如何阻止WPF KeyDown事件从某些包含的控件(如TextBox)冒泡?

我的程序非常大,并且使用WPF,我希望有一个使用'R'的全局快捷键,没有修饰符.
有许多控件,如TextBox,ListBox,ComboBox等,都在控件内部使用字母,这很好 - 这对我来说是正确的.
但是 - 我希望保持KeyDown事件不会冒泡到主窗口,例如,当用户在TextBox中键入字母'R'时,它会触发快捷方式.
理想情况下,我希望能够做到这一点,而无需指定(并执行if-then逻辑)每个实例/控件类型可能接收正常的字母键按压(不仅仅是TextBox控件,尽管他们是最严重的违规者) ).

c# wpf event-bubbling

10
推荐指数
1
解决办法
1万
查看次数

跨越Anchor,事件冒泡

我有这样一个HTML:

<li class="addToFriends"><a href="....">Something something<span>INSIDE SPAN</span>something</a></li>
Run Code Online (Sandbox Code Playgroud)

要在单击锚点时处理AJAX请求,我在click事件上注册了处理程序:

    $('.addToFriends a').click(function(event){
    var target = $(event.target);
    if (target.is('a')) {
              // if I click on SPAN element following fragment won't execute!


      // do ajax request
    }       
    event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 为什么会为span元素引发click事件?毕竟,我没有将click事件绑定到SPAN元素
  • 除了上一个问题,我认为如果我不处理SPAN点击事件,浏览器将使用事件冒泡来为锚点引发点击事件(如果我不调用event.stopPropagation()).但我也没有为我工作,因为点击事件只提出一次

所以现在,我解决了这个问题,我的解决方案是:

    $('.addToFriends a').click(function(event){
    var target = $(event.target);
    if (!target.is('a')) {
      target = target.parent('a')
    } 
            ...
});
Run Code Online (Sandbox Code Playgroud)

但是,我很好奇为什么它会像这样......

谢谢,

帕维尔

jquery onclick event-bubbling

9
推荐指数
1
解决办法
6869
查看次数

什么是冒泡概念?

我听说过事件和SO答案"冒泡",但这与气泡有什么关系?

events event-bubbling

9
推荐指数
1
解决办法
1567
查看次数

如何防止默认事件触发但仍允许事件冒泡

使用jQuery:使用以下代码我想阻止href url(在这种情况下是一个哈希'#')在点击时被触发,但仍然允许click事件继续冒泡链.怎么能实现呢?

<div>
    <a href="#">Test</a>
</div>

$('a').click(function(e){
    // stop a.click firing but allow click event to continue bubbling?
});
Run Code Online (Sandbox Code Playgroud)

jquery events click event-bubbling

8
推荐指数
1
解决办法
1万
查看次数

knockoutjs:阻止没有处理程序的元素冒泡

似乎绑定<event>Bubble: false仅在有定义的事件处理程序(参见注释4)时才有效<event>.

这里有一个例子小提琴.

对于具有对某些事件的处理程序本土元素(例如点击:<textarea>,<a>,<select>等),其中原生处理器就足够了,我希望设置绑定,例如,clickBubble: false在他们身上,而不需要绑定一个"假"的处理程序,工作.

我想我的问题是,有没有另外的淘汰方式来实现这个没有额外的绑定?

events event-handling event-bubbling knockout.js

8
推荐指数
1
解决办法
4362
查看次数

WPF自定义路由事件问题

如何获得两个不相关的控件来引发相同的自定义事件?到目前为止,我看到的所有示例都在一个控件中定义了一个事件,我应该采用不同的方法吗?

例如.我想从OnFocus处理程序为按钮和文本框引发自定义冒泡事件.

wpf event-bubbling routed-events

7
推荐指数
1
解决办法
2905
查看次数

Angular4/Child元素未触发父(单击)事件

我有一个下拉功能,只需点击这个div即可调用

<div (click)="toggleDropdown($event)" data-id="userDropdown">
 Username <i class="mdi mdi-chevron-down"></i>
</div>
Run Code Online (Sandbox Code Playgroud)

但是当我单击<i>元素时,不会触发click事件

toggleDropdown($event) {
    const id = $event.target;
    document.querySelector('[data-drop=' + id.getAttribute('data-id') + ']').classList.toggle('active');
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以让孩子点击事件触发父母一个?

Plnkr

events event-bubbling typescript angular

7
推荐指数
1
解决办法
2826
查看次数

Typescript 3 Angular 7 StopPropagation和PreventDefault不起作用

我在div中输入了文本。单击输入应将其设置为焦点并停止div click事件的冒泡。我尝试了stopPropagationand preventDefault在文本输入事件上,但无济于事。控制台日志显示div单击仍然执行。如何停止div点击事件的执行?

// html
<div (click)="divClick()" >
  <mat-card mat-ripple>
    <mat-card-header>
      <mat-card-title>
        <div style="width: 100px">
          <input #inputBox matInput (mousedown)="fireEvent($event)" max-width="12" />
        </div>
      </mat-card-title>
    </mat-card-header>
  </mat-card>
</div>


// component
@ViewChild('inputBox') inputBox: ElementRef;
divClick() {
    console.log('click inside div');
}

fireEvent(e) {
    this.inputBox.nativeElement.focus();
    e.stopPropagation();
    e.preventDefault();
    console.log('click inside input');
    return false;
}
Run Code Online (Sandbox Code Playgroud)

javascript event-bubbling typescript3.0 angular7

7
推荐指数
2
解决办法
6684
查看次数