0

我只是在我正在做的反应测试中遇到了几个问题。出于某种原因,“div”在单击时不会“隐藏”。我基本上是希望它被点击后,有一个随机的停顿,然后'div'再次出现在下一个指定位置。我认为问题可能出在以下代码中。

    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/

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

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

4

3 回答 3

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');

检查最后的小提琴

于 2013-10-15T10:00:56.143 回答
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();

该代码将更好地维护并且不易出错

于 2013-10-15T10:28:45.187 回答
0

你应该使用==而不是=

= is a declaration
== is a comparison
于 2013-10-15T10:02:14.080 回答