2016-08-03 76 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; 
    } 
}