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 では、background-image、color、さらには filter 属性を持つクラスを削除する際に問題が発生する可能性があると推測しています。さらに情報が必要な場合は、お知らせください。よろしくお願いします。

4

2 に答える 2

1

使用する:

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

それ以外の:

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

利用可能な2番目の引数1000がなく、意味がないためです。

それの2つの可能な署名は次のとおりです。

.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 に答える