如何使用JQuery将变量className传递给我的对象函数?

时间:2011-12-05 22:04:49

标签: javascript jquery

我是面向对象编程的新手。我试图将元素类作为参数传递给函数。我知道我错过了什么......见下面的代码:

var n = new Object();

n.mousePosition = function(class, y){   
    $(document).mousemove(function(e){
        if(e.pageY < y){ $(class).slideDown(200); }
        if(e.pageY > y){ $(class).slideUp(200); }
    });
}
n.mousePosition('.nav', 100);

.nav是我尝试将class参数传递给我的函数的元素类名称,$(class).slideDown...没有将其提取

非常感谢任何帮助,谢谢

5 个答案:

答案 0 :(得分:2)

class是JavaScript中的保留关键字。使用不同的东西,例如而是将className作为参数名称。

答案 1 :(得分:1)

Class是一个保留字,用其他东西作为序号以避免该问题,即...... myClass

此外,您不需要 class前加上<。将其作为参数传递时。

n.mousePosition('nav', 100);

答案 2 :(得分:0)

请注意class是保留字:

function t(class) }
    console.log(class);
}

t("test")

结果(Firefox 8.0):

  

SyntaxError:class是保留标识符

尝试重命名为className(或类似)。

我给出的更多一般建议是,您可以通过在Firebug或jsfiddle中运行代码段或在其他可能暴露错误的环境中调试来轻松捕获此错误。< / p>

答案 3 :(得分:0)

Class是JavaScript中的保留字。您不能将class用作变量名。对于其他保留字,您可以访问:http://www.quackit.com/javascript/javascript_reserved_words.cfm

答案 4 :(得分:0)

class是保留关键字使用其他内容,例如klass

var n = new Object();

n.mousePosition = function(klass, y){   
    $(document).mousemove(function(e){
        if(e.pageY < y){ $(klass).slideDown(200); }
        if(e.pageY > y){ $(klass).slideUp(200); }
    });
}
n.mousePosition('.nav', 100);

在行动http://jsfiddle.net/anuraguniyal/LBfBn/4/

中查看jsfiddle示例