jQuery&Objects,试图制作一个轻量级的小部件

时间:2020-03-05 18:48:54  来源:igfitidea点击:

试图使我可以动态添加元素的make泛型选择"控件",但是我无法使功能正常工作。

这就是我的开始。

$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));
};

Hack解决方案是在创建后手动添加功能:

$nameSelect= new $selectX;
$nameSelect.addOption = function(value,text){
  $(this).append($("<option></option>").val(value).text(text));
};

我在树错树上吠叫吗?

解决方案

回答

要向jQuery添加新方法,我们需要使用jQuery.fn.methodName属性,在这种情况下,它将是:

jQuery.fn.addOption = function (value, text) {
    jQuery(this).append(jQuery('<option></option>').val(value).text(text));
};

但是请记住,可以从任何$()调用的结果中访问此addOption

回答

在此链接中,我们将找到一个插件的示例代码,该插件将自动创建窗口小部件。我们可以根据需要自定义它。