2012-02-23 14 views
-1

私の簡単なjQの機能は、型にしようとしているjQueryの機能の問題

$("#qparamstitle").animateHighlight("red","color", 3000); 
$("#params").animateHighlight("red","border-color", 3000); 

のように呼び出すこと

$.fn.animateHighlight = function(highlightColor,type, duration) { 
    var highlightBg = highlightColor || "#FFFF9C"; 
    var animateMs = 1500; 
    this.stop().css(type, highlightBg).delay(duration).animate({ 
     type: "black" 
    }, animateMs); 
}; 

のように見えます。アニメーションを除くすべてがうまく動作します。私が間違ったこと、それをどうやって稼働させるのか?

+1

だから、壊れているものを説明し、あなたの代わりに起こることを期待するもの。また、jsFiddleの例を投稿すると、人々があなたを助けることができます。 – Sparky

+3

下向き矢印の上にカーソルを置くと、下向き投票の有効な理由が表示されます。下位票に不満を表明し、このフォーラム名のユーザーに電話すると、より多くの下位票が得られる可能性が高くなります。 – Sparky

+0

@ Sparky672 'type:" black "'タイプは可変です。それはボーダーカラー、カラー、何か他のものかもしれません。アニメーション関数は可変パラメータを受け入れません – heron

答えて

1
{ 
    type: "black" 
} 

これは、キーが"type"のオブジェクトを作成しています。オブジェクトリテラルのキーとして変数を使用することはできません。

最初に変数を宣言し、値を[]で設定する必要があります。

$.fn.animateHighlight = function(highlightColor,type, duration) { 
    var highlightBg = highlightColor || "#FFFF9C"; 
    var animateMs = 1500; 
    var animateVal = {}; // declare object 
    animateVal[type] = 'black'; // set `type` value 
    this.stop().css(type, highlightBg).delay(duration).animate(animateVal, animateMs); 
}; 
+0

ああ、ボーダーカラーはうまくいかないようです。 cssでは、アニメーション 'borderColor'の' border-color'です。どうすれば問題を解決できますか? – heron

+1

この解決策を理解してください。 'border-color'は' borderColor'と同様に動作しますが、オブジェクトリテラルのキーとして変数を使うことはできません。 – elclanrs

+0

@elclanrs あなたがコメントしたテストソリューション – heron

0

あなたはjQueryのだけそれをサポートしていない、のjQuery UIanimate colorsにできるようにする必要があります。

さらに、オプションオブジェクトをアニメーション機能に渡す方法は機能しません。あなたは関数の外でオブジェクトを作成し、オブジェクトを渡す必要があります:

$.fn.animateHighlight = function(highlightColor,type, duration) { 
    var highlightBg = highlightColor || "#FFFF9C"; 
    var animateMs = 1500; 
    // create objects for the animation options 
    var o = {}; 
    // using the array notation 
    // you can create a property of name "type" 
    o[type] = 'Black'; 
    this.stop().css(type, highlightBg).delay(duration).animate(o, animateMs); 
}; 

DEMO

+0

私はすでにjquery-uiをプロジェクトに含めました。だからあなたはあなたのjq-uiソリューションも提案することができます。 – heron