2013-12-20 51 views
-2
$(document).ready(function() { 
    $("#img-1").click(function() { 

     switch (true) { 
      case $("#div2").load("borrower-information.html"): 
       alert(hello); 

       break; 
      case ($("#div3").load("demo_test.html #p3")): 
       break; 

      case ($("#div4").load("demo_test.html #p4")): 
       alert('hello'); 
     } 
    }); 
}); 

球員我做了3格,有一個按鈕的id名稱是id = img-1點擊從其他來源的頁面加載後,其確定,但我的查詢是,該警報不是工作爲什麼?jquery case語句不起作用

+3

你期待這個開關做什麼? 「開關(真)」聽起來有點奇怪。 – putvande

+1

jQuery沒有'case'語句。 * JavaScript *確實如此。 –

+0

'switch(true)'總是'true/1'。 –

回答

3

switch (true)意思是 「選擇第一case即使用全等(===)的計算結果爲true」。您的任何案例都不會使用嚴格的相等性計算爲true。他們都導致jqXHR對象,雖然truthy,不是=== true。所以沒有一個匹配。

這工作,例如:

var a = 42; 
switch (true) { 
    case a == 67: 
     console.log("a == 67 is true"); 
     break; 
    case a == 42: 
     console.log("a == 42 is true"); 
     break; 
} 

...因爲它使a == 42 is true出現在控制檯,因爲表達式a == 42true,因此它匹配switch (true)。但這是switch非常非常不尋常的用途。可能有更好的方法來做任何你想做的事情。

+0

你能告訴我在我的編碼中我做錯了嗎? – user3124228

+0

那麼,事件綁定是好的... – mirichan