0

我有很多名为“.current”的类的 divlayers。取决于用户所做的一些删除类和一些会再次得到它。这很好用,但是如果只有一个 div 层具有“.current”类,我想要的是触发一个事件。我如何检测是否只有一个元素具有当前类?例如

if ($('#div4').hasClass('.current')) {
    alert("fire me something");
}

诸如“是唯一的”之类的东西有类。

4

6 回答 6

8

在您的事件回调中,只需检查具有current该类的 div 的数量:

if ($('#div4').hasClass('current') && $('div.current').length === 1) {
    ...do stuff...
}

如果你只使用currenton divs,那么你可以只使用$('.current').length === 1.

于 2013-02-07T17:07:43.653 回答
0

您应该能够使用 css 类作为选择器,然后获取长度:

if($(".current").length == 1 ) {
   alert('fire me something');
}
于 2013-02-07T17:08:09.157 回答
0

请参阅http://api.jquery.com/size/http://api.jquery.com/length/

$(".current").length
$(".current").size()   *deprecated as of v1.8   

要么给你计数。每当您调整类检查以查看计数并在其为 1 时触发动作

于 2013-02-07T17:08:32.370 回答
0

我“认为”你可以这样做:

if($('.current').length == 1) { //DO }

我相信选择器会返回一个元素数组。

于 2013-02-07T17:08:54.217 回答
0

你有错误语法!您应该为您的情况添加一个“)”。并且不要使用 calss selecotr (".") 。这将起作用:

if($('#div4').hasClass('current')){
        alert("fire me something");
 }
于 2013-02-07T17:09:07.097 回答
0

您可以通过使用长度来查看 .current 类的实例数量。例如

var mycount = $(".current").length;
alert(mycount);

然后对结果做任何你喜欢的事情。

于 2013-02-07T17:09:20.597 回答