jQuery&对象,试图制作轻量级小部件

时间:2008-09-07 07:11:51

标签: javascript jquery

尝试制作一个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}}

我是在咆哮错误的树吗?

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>