我正在编写一个插件,我需要“绑定”一个参数。 有时我需要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
);
});
};
答案 0 :(得分:0)
您可以传递"checked"
或"val"
之类的字符串作为参数,然后:
this.change(function () {
switchFormPart(settings.visibleholder,
settings.hiddenholder,
param in this ? this[param] : $(this)[param](),
settings.reparseform
);
});
如果参数为"checked"
,则相当于this.checked
如果参数为"val"
,则相当于$(this).val()
等等。