如果条件为真或跳过所有其他条件

时间:2016-08-03 14:48:17

标签: javascript jquery html angularjs

xyz.html

<p id = x ngClick = close($event)></p>
<p id = y ngClick = close($event)></p>
<p id = z ngClick = close($event)></p>
<h1 id = a ngClick = close()></h1>

xyz.js

function close(event)
if (event.target.id === x){
....
}else if(event.target.id === y){
....
}else if(event.target.id === z){
.....
}

此函数用于关闭当前窗口并检查事件,但是当我没有在其他关闭方法(h1标记)中传递此事件时,我发现事件是未定义的错误。< / p>

3 个答案:

答案 0 :(得分:2)

错误是正确的。您需要首先检查是否定义了事件,因为如果事件未定义,您无法直接访问目标属性。

function close(event)
   if(event){
    if (event.target.id === x){
    ....
    }else if(event.target.id === y){
    ....
    }else if(event.target.id === z){
    .....
    }
    }else{
           //H1 click condition
      }
}

答案 1 :(得分:1)

 function close(event){
     if(event===undefined){

     //H1 got clicked
       return;
     }

     if (event.target.id === x){
     ....
     }else if(event.target.id === y){
     ....
     }else if(event.target.id === z){
     .....
     }
   }

答案 2 :(得分:0)

试试这个:

$scope.close = function(event) {
  if (!event) return;

  switch (event.target.id) {
    case "x":
      ...
      break;
    case "y":
      ...
      break;
    case "z":
      ...
      break;
    default:
      ...
      break;
  }
}