1

パラメータを「バインド」する必要があるプラグインを作成しています。this.checked の値が必要な場合もありますが、必要なのは $(this).val() である場合もあり、他の属性を確認する必要がある場合もあります。

値を確認する対象を何らかの形で決定する初期化用の「入力パラメーター」が必要です。

私はこれをevalで行うことができますが、それは悪いことです。スイッチケースでこれならいけますが、全部用意できるかはわかりません。

これを行う最善の方法は何ですか?

$.fn.formSwitch = function (options) {

    var settings = $.extend({
        visibleholder: '#visible_holder',
        hiddenholder: '#hidden_holder',
        reparseform: this.closest('form')
    }, options);



    this.change(function () {
        switchFormPart(settings.visibleholder, 
            settings.hiddenholder, 
            ********this.checked, *********** <- I would like this as a parameter
            settings.reparseform
        );
    });
};
4

1 に答える 1

0

"checked"または"val"パラメータとして文字列を渡すことができます。

this.change(function () {
    switchFormPart(settings.visibleholder, 
        settings.hiddenholder, 
        param in this ? this[param] : $(this)[param](),
        settings.reparseform
    );
});

param が"checked"の場合、次と同等の処理を行いますthis.checked

param が"val"の場合、次と同等の処理を行います$(this).val()

等々。

括弧表記条件演算子、およびin 演算子を調べる

于 2012-06-14T10:38:24.123 に答える