2014-01-06 119 views
0

我期待使用if語句來檢查e.currentTarget.id是否不等於「警報」或「歷史」,這是行不通的。是否有另一種方法來檢查這種情況下的兩種情況?如果聲明 - 多個條件

var buttons = elt.find(":submit,:button,.clickable"); 
    buttons.unbind("click"); 
    buttons.click(function (e) { 
    put({ "tag": "click", "id": e.currentTarget.id}); 
    if(e.currentTarget.id != "alert" || e.currentTarget.id != "history"){ 
     $(".hide_on_click").hide(); 
    } 
    }); 
+0

嘗試將'||'更改爲'&&'。請記住德摩根的法律:'!p &&!q ===!(p || q)':-) –

+0

這樣做!非常感謝。 – user2512696

回答

5

由於id不能等於兩個不同的字符串,因此其中的一個將始終爲真,您的語句將始終爲真。

var buttons = elt.find(":submit,:button,.clickable"); 
    buttons.unbind("click"); 
    buttons.click(function (e) { 
    put({ "tag": "click", "id": e.currentTarget.id}); 
    if(e.currentTarget.id != "alert" && e.currentTarget.id != "history"){ 
     $(".hide_on_click").hide(); 
    } 
    }); 

我不確定你想要做什麼;但是如果你想隱藏一些當id不是這些值時嘗試上面的代碼。