1

主にアニメーションに関するものです。

独自の設定を使用して表示または非表示にできる、さまざまなアニメーションを持つ要素がいくつかあります。わずかに跳ねるポップダウン、メニューのフェードイン/アウトなど。

いくつかのボタン/ウィジェット/イベントはこれらの要素を非表示/表示します。潜在的な呼び出しごとに hide() または show() のオプションをコピーする必要はありません。また、デフォルト オプションのリストをどこかで追跡する必要もありません。初期化時にアニメーション設定を設定したいので、後でスクリプトがオプションを渡すことを心配する必要はありません。

選択したターゲットのデフォルト オプションを保存する方法はありますか? 何かのようなもの...

$('#foo').setDefaultOptions('hide', {/* New Defaults */});
// or...
$('#foo').hide.defaults = {/* New Defaults */};

したがって、以下を呼び出すと、それ以上の入力なしでこれらのオプションが使用されます。

$('#foo').hide(); // Uses those default values set earlier

ありがとうございました。

4

2 に答える 2

2

オブジェクトを作成した後で、オブジェクト自体にオプションを設定するために使用.data()します。次に、からオプションを取得する独自のバージョンの.hide()とを作成します。.show().data()

// define custom hide function that retrieves default options
$.fn.myHide = function() {
   this.each(function() {
       var item = $(this);
       item.hide(item.data("animOptions"));
   });
   return this;
}

// set default options once
$("#foo").data("animOptions", {...});


// from then on, just call the method and it uses the object-specific default options
$("#foo").myHide();
于 2013-02-07T15:12:32.493 に答える
1

はいといいえ。これらすべてのメソッドにモンキーパッチを適用してデフォルトを許可することもできますが、オプションを自分で渡す方が理にかなっています。

$("#foo").data("hide", { /* defaults here */});

// later on...
var $foo = $("#foo"), options = $foo.data("hide");
$foo.hide(options);

データ オプションが存在する場合に代わりにこの部分を自動的に実行するようにメソッドにパッチを適用すると、将来の開発者 (またはしばらく後の自分自身) は、呼び出す.hide()べきではないのにアニメーションを呼び出す理由を理解するのに苦労する可能性があります。

于 2013-02-07T15:12:52.930 に答える