2016-08-03 133 views
0

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标签)我得到的事件是未定义的错误。

+0

'如果(!事件){/ *处理这里*/} else if(event.target.id == x)...' –

回答

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){ 
    ..... 
    } 
    } 
+0

更好地写'if(typeof(event)==“undefined”){...} –

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 
     } 
} 
0

你可以试试这个 - 空检查事件对象:

function close(event) 
    if(event == null || event.target == null) 
    return; 
    else if (event.target.id === x){ 
    .... 
    }else if(event.target.id === y){ 
    .... 
    }else if(event.target.id === z){ 
    ..... 
} 
0

试试这个:

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

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