首頁  >  問答  >  主體

javascript - 如何检测冒泡结果是否有某个元素

我在一块区域中点击如果点击的是空白地方这可以进行绘制,如果点击的地方有东西则可以进行拖动。现在的问题是我希望点击smartWIn元素中的子元素,也当做smartWin元素被点击了,想利用冒泡原理结果发现不行?

迷茫迷茫2769 天前403

全部回覆(2)我來回復

  • ringa_lee

    ringa_lee2017-04-11 12:37:42

    $(".smartWin").addEventListener('mousedown',function(){

    consle.log(111)
    });
    看行不

    回覆
    0
  • 迷茫

    迷茫2017-04-11 12:37:42

    谢邀.

    (我也是菜鸟哈,简单写下思路)

    看到题主提到:

    ...如果点击的是空白地方这可以进行绘制...

    我第一个反应是,这不应该上canvas么。。。


    ...如果点击的地方有东西则可以进行拖动...

    这个倒比较好解决,用事件代理应该能搞的定,类似于给.smartWIn绑个:

    $('.smartWIn').on('mousedown', 'p', function(){
        console.log('111');
    });

    至于手动检查事件冒泡元素的方法,也可以用:

    var $target = $(event.target);
    if( $target.is('.smartWIn') ) {
        return; //检查触发事件的目标元素和绑定事件的元素是否是同一元素
    } else {
        console.log('111');
    }

    回覆
    0
  • 取消回覆