jQuery hasClass检查更改的DOM

时间:2011-02-24 19:18:51

标签: javascript jquery

我遇到了jQuery函数'hasClass'的问题。它返回false,而它应该返回true。 hasClass函数正在寻找一个由javascript添加的类。那么也许hasClass函数无法在改变的HTML中找到类?如果是这样,我怎样才能以最好的方式解决它?

$(".slides").mouseover(function(){
    $(this).stop(true, true).animate({"width": "+=30px", "height": "+=30px", "margin-top": "+=15px"}, 200);
})

$(".slides").mouseout(function(){
    alert($(this).hasClass('activeSlide'));
    if(!$(this).hasClass('activeSlide')){
        $(this).stop(true, true).animate({"width": "-=30px", "height": "-=30px", "margin-top": "-=15px"}, 200);
    }
});

$("body").click(function(){
    $(".activeSlide").removeClass("activeSlide");   
});

$(".slides").click(function(){
    $(".activeSlide").removeClass("activeSlide");
    $(this).addClass("activeSlide");
    alert("Set");
});

1 个答案:

答案 0 :(得分:5)

由于事件传播,您的身体点击处理程序始终会删除activeSlide类。

尝试event.stopPropagation();

$(".slides").click(function(event){
    $(".activeSlide").removeClass("activeSlide");
    $(this).addClass("activeSlide");
    event.stopPropagation();
    alert("Set");
});

$(".slides").click(function(){
    $(".activeSlide").removeClass("activeSlide");
    $(this).addClass("activeSlide");
    alert("Set");
    return false;
});