我试图从jQuery调用JavaScript函数。当我尝试将参数传递给JavaScript函数时:
var brandRcObj = "b-brand-box";
$('.b-brand-box').on('mouseleave', function(){
brandOn(brandRcObj);
});
我收到以下错误:
"Uncaught Error: Syntax error, unrecognized expression: '.b-brand-box'"
我这样做是因为我会在项目中多次使用相同的mouseleave
事件。因此我想编写一个JavaScript函数,如下所示:
function brandOn(brandClass){
var classObj = "'" + "." + brandClass + "'";
var imgObj = "'" + "." + brandClass + " " + "img" + "'";
$(classObj).css({
backgroundColor: 'white',
opacity: 1
});
$(imgObj).css({
opacity: 1
});
}
谢谢你的帮助!
答案 0 :(得分:1)
'.b-brand-box'
不是有效的类选择器 - .b-brand-box
是。
你在动态生成的值周围加上单引号,虽然不应该有任何 - 你误解了JavaScript中的文本文字的符号 >语法,用于其实际字符串 value 。
'.b-brand-box'
是JavaScript 代码中文本文字的符号,".b-brand-box"
是另一种有效的编写方式。解析源代码后,这两个字符串的值仅为.b-brand-box
。
你真正想要的只是简单地
"." + brandClass;
,仅此而已。
答案 1 :(得分:0)
您不需要所有这些报价,只要您拥有:
var classObj = "'" + "." + brandClass + "'";
var imgObj = "'" + "." + brandClass + " " + "img" + "'";
你需要的只是
var classObj = "." + brandClass;
var imgObj = "." + brandClass + " " + "img";
解释器知道你有一个字符串