【发布时间】:2016-02-19 18:11:13
【问题描述】:
我想创建一个灵活的 jquery 插件来处理表单,这是我的标记 + 代码:
<div id="myform" validate="1">form</div>
<script>
(function ($) {
$.fn.myForm = function()
{
var me = this;
if(me.attr("validate"))
{
me.validate();
}
};
})(jQuery);
// code from external file eg. myform_validate.js
$.fn.myplugin.validate = function () {
// form validation here
alert("validate");
};
$(document).ready(function(){
$('#myform').myForm();
});
</script>
我想要实现的是某种插件式插件结构,这意味着 myForm 是每个项目的基础插件,如果需要,我会向插件添加额外的功能/方法,如表单验证或图像上传器(通过加载额外的外部脚本)。 这不应该没有实例化,直接在插件内部。 如您所料,上面的代码不起作用..:/ 如果可能的话,有什么想法吗? 谢谢
【问题讨论】:
-
this不是你想象的那样。在所有$.fn.someMethod()中,它是由选择器表示的元素集合,它允许return this用于jQuery 方法链接 -
这是一个非常大的问题,因为没有比其他方法更好的方法......这也取决于您最终想要什么。这是一个完全有效的示例 (jsfiddle.net/jfqatfvz),但经过简化...
-
插件插件我认为你的意思是工厂。查看 jQuery 的 widget factory 以获得使用或灵感。
标签: javascript jquery jquery-plugins