0

我在使用 Jquery removeClass 功能禁用某个类时遇到问题。类定义如下

.btn-purple
{
    background-color: #F1B2E1;
    background-image: -moz-linear-gradient(top, #F1B2E1, #E986D0);
    background-image: -ms-linear-gradient(top, #F1B2E1, #E986D0);
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F1B2E1), to(#E986D0));
    background-image: -webkit-linear-gradient(top, #F1B2E1, #E986D0);
    background-image: -o-linear-gradient(top, #F1B2E1, #E986D0);
    background-image: linear-gradient(top, #F1B2E1, #E986D0);
    background-repeat: repeat-x;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F1B2E1', endColorstr='#E986D0', GradientType=0);
    border-color: #0055cc #0055cc #003580;
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
    filter: progid:dximagetransform.microsoft.gradient(enabled=false);
}
.btn-purple:hover,
.btn-purple:active,
.btn-purple.active,
.btn-purple.disabled,
.btn-purple[disabled] {
  background-color: #E986D0;
}

在 javascript 文件中,我有以下内容

$(function(){
    $("#1").click(function(){
        $("#1").removeClass("btn-purple", 1000);
        return false
    });

});

这是我希望从中删除类定义的部分的 HTML 标记

<div id="1" class="span3 well homeBox opaque btn-purple">
    <span class="siteBoxContent">What do we do?</span>
</div>

这是我在 Webkit 错误控制台中调试时遇到的错误

TypeError: 'undefined' is not an object (evaluating 'fx.end[0]')      jquery.effects.core.js:32

如果我尝试删除像“homeBox”这样的类,removeClass 可以正常工作。这是 homeBox 类定义的定义

.homeBox
{
    position:relative;
    width:26.666666666667%;
    height:200px;
}

所以我猜测 jQuery 可能会在删除具有背景图像、颜色甚至过滤器属性的类时遇到问题。如果您需要更多信息,请告诉我。在此先感谢您的帮助。

4

2 回答 2

1

利用:

$("#1").removeClass("btn-purple");

代替:

$("#1").removeClass("btn-purple", 1000);

因为没有第二个参数可用,并且1000在那里没有任何意义。

它的两个可能的签名是:

.removeClass( [className] )
.removeClass( function(index, class) )

更多信息:

于 2012-06-17T11:22:41.620 回答
0

您使用不存在的函数签名:

removeClass("classname", integer) // WRONG

JQuery AFAIK 中没有这种可能性,您可以这样做:

.removeClass( [className] )
.removeClass( function(index, class) ) // from version 1.4

我不明白 1000 代表什么,但我敢打赌,删除它应该可以解决问题。

于 2012-06-17T11:26:03.987 回答