我是用这样的方式创建jquery插件的
- JScript code
(function($) { $.fn.myName = function(options) { var defaults={ title:"title" } opts = $.extend(defaults, options); }; function fname1(){ //这是私有函数的写法,对吗? //我在这里怎么调用opts?直接opts是null }; $.fn.myName.fname2=function(){ //这是可供外部访问的函数的写法,对吗? } function fname3(){ //我在此触发一个事件onSelectChange,但此事件的代码我并不写在此插件中,而是让外部调用者来写这个onSelectChange事件的具体代码,那么此插件中应该如何绑定? } })(jQuery);
麻烦给个思路,谢谢
------解决方案--------------------
看看介个
------解决方案--------------------
(function($) {
$.fn.myName = function(options) {
var defaults={
title:"title"
}
opts = $.extend(defaults, options);
};
function fname1(){
//这是私有函数的写法,对吗?
//我在这里怎么调用opts?直接opts是null
};
$.fn.myName.fname2=function(){
//这是可供外部访问的函数的写法,对吗?
外部可以通过 $("#xx").myName.fname2()来访问。
}
function fname3(){
//我在此触发一个事件onSelectChange,但此事件的代码我并不写在此插件中,而是让外部调用者来写这个onSelectChange事件的具体代码,那么此插件中应该如何绑定?
}
/*
$.fn.extend({
fname3:function(){
$(this).trigger("selectChange"); //触发
}
});
外部调用: $("#slect").fname3();
外部监控selectChangge :$("#select").selectChange(function(){
// ....
}) ;
*/
})(jQuery);
------解决方案--------------------
function fname1(){
//这是私有函数的写法,对吗?
//我在这里怎么调用opts?直接opts是null
//逻辑不清造成的问题,opts变量在$.fn.myName函数中被赋值,但此时该函数还未执行,所以opts没有被赋值
};
$.fn.myName.fname2=function(){
//这是可供外部访问的函数的写法,对吗?
//基础知识,这个是给$.fn.myName对象添加了一个方法,作用域当然与$对象相同,如果$能在外部访问,其成员自然可以访问
}
function fname3(eventFunc){
//我在此触发一个事件onSelectChange,但此事件的代码我并不写在此插件中,而是让外部调用者来写这个onSelectChange事件的具体代码,那么此插件中应该如何绑定?
//可以传递一个函数参数来作为事件函数
}