Javascript jquery stopPropagation()和发送;事件;?

Javascript jquery stopPropagation()和发送;事件;?,javascript,jquery,Javascript,Jquery,我创建了一个里面有按钮的桌子 该表有onclick事件和内部按钮 但当我按下按钮时,事件就会出现在桌面上。(我收到两个警报) 所以我使用了ev.stopPropagation() 以及它的工作原理。但为了让它发挥作用,我必须: 在html中: <input type='button' onclick='doWork(event);'/> 这是正确的方法吗 我必须发送事件吗?我知道不同的浏览器使用不同的事件 IE不需要传递事件对象,我们可以使用window.event访问它。因此

我创建了一个里面有按钮的桌子

该表有
onclick
事件和内部按钮

但当我按下按钮时,事件就会出现在桌面上。(我收到两个警报)

所以我使用了
ev.stopPropagation()

以及它的工作原理。但为了让它发挥作用,我必须:

在html中:

<input type='button' onclick='doWork(event);'/>
  • 这是正确的方法吗
  • 我必须发送事件吗?我知道不同的浏览器使用不同的
    事件

    • IE不需要传递事件对象,我们可以使用window.event访问它。因此,出于跨浏览器兼容性的原因,您应该尝试以下方法:

      function doWork(e)
      {
          var evt = e || window.event;
      
          if (evt.stopPropagation) {
              evt.stopPropagation();
          }
          else {
              evt.cancelBubble = true;
          }
      
          alert('button');
      }
      

      IE不需要传递事件对象,我们可以使用window.event.访问它。因此,出于跨浏览器兼容性的原因,您应该尝试以下方法:

      function doWork(e)
      {
          var evt = e || window.event;
      
          if (evt.stopPropagation) {
              evt.stopPropagation();
          }
          else {
              evt.cancelBubble = true;
          }
      
          alert('button');
      }
      

      我看不出有什么问题,是的,您需要参数化事件,以便在事件处理程序中对其调用StopRoPagation()。

      我看不出有什么问题,是的,您需要参数化事件,以便在事件处理程序中对其调用StopRoPagation()。

      这是另一个:

      
      功能定位(ev)
      {
      ev=ev | | window.event;
      var target=ev.target | | ev.src元素;
      if(target.tagName.toUpperCase()!==“输入”){
      警报(“表格”);
      }
      }
      
      这是另一个:

      
      功能定位(ev)
      {
      ev=ev | | window.event;
      var target=ev.target | | ev.src元素;
      if(target.tagName.toUpperCase()!==“输入”){
      警报(“表格”);
      }
      }
      
      我不明白你的答案。html元素是否应该发送事件?如果是,为什么要检查window.event?你可以在
      e
      中找到它……我不明白你的答案。html元素是否应该发送事件?如果是,为什么要检查window.event?您将在
      e
      。。。。
      <table onclick="doWork();" border=2 style="width:70px;">
      
      <input type='button' onclick='alert("button");'/>
      
      function doWork(ev)
      {
        ev = ev || window.event;
        var target = ev.target || ev.srcElement;
        if(target.tagName.toUpperCase() !== 'INPUT'){
          alert('table');
        }
      }