2

我不知道为什么这会引发错误

        if((("#panel").is(':visible') && elm.length==0)||((("#panel").is(':hidden') && elm.length>0))){
            showSubMenu()
        }

("#panel").is 不是函数???

有人可以向我解释为什么这会导致错误的逻辑吗?这样我就不再重复了?

4

5 回答 5

8

"#panel"是一个字符串。
字符串没有.is()方法。

您可能想调用$创建一个 jQuery 对象。

于 2012-12-06T21:40:02.180 回答
3

你错过了 jQuery 对象 $,试试这个:

 if(($("#panel").is(':visible') && elm.length==0)||(($("#panel").is(':hidden') && elm.length>0))){
        showSubMenu()
    }
于 2012-12-06T21:41:01.760 回答
2

尝试使用 jQuery 函数表示法:

if(($("#panel").is(':visible') && elm.length==0)||((("#panel").is(':hidden') && elm.length>0))){
            showSubMenu()
        }
于 2012-12-06T21:40:32.097 回答
2

您忘记了 $ 符号;

尝试

if(($("#panel").is(':visible') && elm.length==0)||((("#panel").is(':hidden') && elm.length>0))){
            showSubMenu()
        }
于 2012-12-06T21:42:27.067 回答
1

你忘了把 jQuery-function - call (最常用的形式$)放在你的选择器前面

$('#panel').is(':visible')

没有这个,'#panel'将只是一个字符串而不是一个 jQuery 元素。然后,jQuery-elements 让您可以调用.is它们上的函数,而String- Object 根本没有,这就是您收到该错误的原因。

于 2012-12-06T21:40:53.247 回答