jQuery-如果元素具有类,请执行此操作


111

我需要一个jQuery脚本,该脚本将查看是否有任何元素具有特定的类并执行诸如更改位置之类的操作。

这是这种方式,但是我认为这不会起作用。

$("a.contact").toggle(function() {
    $("#contact").animate({
        right: '0'
    }, 2000);

    if ($("#about").hasClass("opened")) {
        $("#about").animate({
            right: -700 + "px"
        }, 2000);
    }
}, function() {
    $("#contact").animate({
        right: -700 + "px"
    }, 2000);
});

好吧,您说过,您想知道“ any”元素是否具有某个类,但是if语句中的选择器仅针对id为“ about”的元素是故意的吗?基本上试图找出您遇到的问题。您是否还尝试了上面的代码,看看是否可行?
阿德里安

由于您认为这行不通,所以对问题进行投票否决?你先试试看吗?!?如果它不起作用,请具体告诉我们您希望看到的内容以及您实际看到的内容。

@ken:确实他应该有,但是由于他只是个卑鄙的菜鸟,也许朝着正确的方向轻推一下会更合适吗?顺便说一句,@ Florescu,如果您好奇是否可以工作,但无法解决问题,请在jsfiddle.net上模拟问题并在您的问题中链接到它。
treeface 2010年

@treeface:那轻推(代替称他为低贱的菜鸟);如果他将问题更新为...您知道,实际上包含了一个问题,那么我将删除我的否决票。坏问题(或没有问题)=否决票,这样其他人就不必浪费时间在诸如此类的非问题上。

Answers:


193

首先,条件中缺少一些括号:

if ($("#about").hasClass("opened")) {
  $("#about").animate({right: "-700px"}, 2000);
}

但您也可以将其简化为:

$('#about.opened').animate(...);

如果#about没有opened课程,则不会设置动画。

如果问题出在动画本身,那么我们需要更多地了解您的元素位置(绝对?相对父级中的绝对值?父级是否有布局?)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.