0

我正在尝试从 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
  });
}

谢谢你的帮助!

4

2 回答 2

1

'.b-brand-box'不是一个有效的类选择器——.b-brand-box是。

您在动态生成的值周围加上单引号,虽然不应该有任何- 您将JavaScript语法中的文本文字符号误认为其实际字符串

'.b-brand-box'是 JavaScript代码中文本文字的表示法,".b-brand-box"将是另一种有效的编写方式。然而,在源代码被解析后,这两个字符串的.b-brand-box只是。

你真正想要的只是简单

"." + brandClass;

仅此而已。

于 2013-10-18T23:09:33.720 回答
0

你不需要所有这些报价,你有:

var classObj = "'" + "." + brandClass + "'";
var imgObj = "'" + "." + brandClass + " " + "img" + "'";

所有你需要的是

var classObj = "." + brandClass; 
var imgObj = "." + brandClass + " " + "img";

解释器知道你有一个字符串

于 2013-10-18T23:09:05.430 回答