jQuery & Objects,尝试制作一个轻量级的小部件
-
09-06-2019 - |
题
尝试制作一个可以动态添加元素的通用选择“控件”,但我在使函数正常工作时遇到困难。
这就是我的开始。
$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
可以从任何结果访问 $()
称呼。
不隶属于 StackOverflow