尝试制作一个make generic选择“control”,我可以动态添加元素,但是我无法让函数正常工作。
这就是我的开始。
$select = $("<select></select>");
$select.addOption = function(value,text){
$(this).append($("<option></option>").val(value).text(text));
};
这单独工作正常,但只要$select
.clone(true)
addOption()
,function $selectX() {
return $("<select></select>");
}
$selectX.prototype.addOption() = function(value,text){
$(this).append($("<option></option>").val(value).text(text));
};
函数就会丢失。
这是我的对象方法,但功能仍然不起作用。
$nameSelect= new $selectX;
$nameSelect.addOption = function(value,text){
$(this).append($("<option></option>").val(value).text(text));
};
Hack解决方案是在创建后手动添加该功能:
{{1}}
我是在咆哮错误的树吗?
答案 0 :(得分:7)
向jQuery添加新方法您需要使用jQuery.fn.methodName
属性,因此在这种情况下它将是:
jQuery.fn.addOption = function (value, text) {
jQuery(this).append(jQuery('<option></option>').val(value).text(text));
};
但请注意,addOption
可以从任何$()
电话的结果中访问。{/ p>