jQuery如果语句问题

时间:2013-10-15 10:00:02

标签: javascript jquery html css jsfiddle

我在进行反应测试时遇到了更多问题。出于某种原因,'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/

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您应该使用==代替=

= is a declaration
== is a comparison

答案 2 :(得分:0)

通过==进行相等性比较(如果你使用严格相等===更好)而不是=(赋值),则可以大大减少冗余代码一个简单的数组查找

e.g。

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

代码可以更好地维护并且更不容易出错