2013-10-15 83 views
0

我在做一个反应测试时遇到了一些问题。出于某种原因,'div'在点击时不会'隐藏'。我基本上想要它,所以点击后,会有一个随机暂停,然后在下一个指定的位置再次出现'div'。我认为这个问题可能在于下面的代码。jQuery如果语句问题

if (posctr = 1) { 
     $div.css({ 
      top: 300, 
      left: 150 
     }).show(); 
    } else if (posctr = 2) { 
     $div.css({ 
      top: 100, 
      left: 600 
     }).show(); 
    } else if (posctr = 3) { 
     $div.css({ 
      top: 650, 
      left: 400 
     }).show(); 
    } else if (posctr = 4) { 
     $div.css({ 
      top: 500, 
      left: 150 
     }).show(); 
    } else if (posctr = 5) { 
     $div.css({ 
      top: 50, 
      left: 400 
     }).show(); 
    } else if (posctr = 6) { 
     $div.css({ 
      top: 400, 
      left: 100 
     }).show(); 
    } 

您可以在这里尝试一下:http://jsfiddle.net/FWSc7/

任何帮助将不胜感激!谢谢!

编辑:这是最新版本。我遇到了7次出现“div”的问题。 http://jsfiddle.net/FWSc7/8/

+0

您可以在结束传递一个对象的CSS。您只需要修改顶部和左侧。此外,你可以[尝试一个开关](http://jsfiddle.net/MrPolywhirl/FWSc7/5/)。 –

回答

2

1)您在if.else ..语句中使用赋值运算符=

它在所有的if语句

例如更改为==(相等比较)

if (posctr == 1) 

2)除此之外,你有一些错误,你可以在控制台中看到(在开发工具中)

3)错误的选择器

$div.hide(); //Wrong since you haven't declared any variable like this 

所以添加到您的代码

var $div = $('div'); 

检查final fiddle

+0

啊,好的,谢谢你!但它似乎仍然不能正常工作。出于某种原因,您只能点击一次'div',即使它可以让您点击7次。 – user2840892

+0

以下是最新版本:http://jsfiddle.net/FWSc7/8/ – user2840892

+0

@ user2840892没有您的最终作品正确。该div隐藏了一段时间,然后显示。它发生7次点击 – Praveen

0

您应该使用==代替=

= is a declaration 
== is a comparison 
0

为前提的平等的比较是通过==完成(更好如果你反正使用严格的等于===)而不是=(作业),您可以通过简单的数组查找来显着减少冗余代码

例如,

var coords = { 
    y : [0, 300, 100, 650, 500, 50, 400], 
    x : [0, 150, 600, 400, 150, 400, 100] 
} 

,只是写

$div.css({ 
    top: coords['y'][posctr], 
    left: coords['x'][posctr] 
}).show(); 

的代码将是更好的维护和不易出错

+0

谢谢你!我只是更新了它,但它仍然只让我点击'div'一次。 http://jsfiddle.net/FWSc7/7/ – user2840892

+0

以下是最新版本:http://jsfiddle.net/FWSc7/8/ – user2840892