2013-12-20 53 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