外部如何调用jq插件的内部方法呢?
(function(){
jQuery.fn.extend({
SeSelectDown:function(data){
var options = {
data:{},
ClassName:'',
returnVal:function(res){
return {
a:res
}
}
}
options = $.extend(options, data);
var _this = this;
var DomStart = '<div class="btn-group DownBtn"><button type="button" class="btn btn-Down-value btn-default btn-sm">请选择公司</button><button type="button" class="btn btn-default btn-sm dropdown-toggle" ><span class="caret"></span></button><div class="Dropdown"><div class="Dropdown-text"><input type="text" class="DownText"></div><ul class="dropdown-menu Dropdown-menu">';
var DomEnd = '</ul></div></div>';
var Data = data.data;
var ClassName = data.ClassName;
var ArrNum = 0;
var AddNum = 0;
var Type = true;
var Downlist = [];
var Derlist = [];
var Pagelist = [];
Derlist[ArrNum] = [];
Pagelist[ArrNum] = [];
for(var i=0;i<Data.length;i++){
Pagelist[ArrNum].push({id:Data[i].accountId,name:Data[i].accountCnName});
if((i+1)%20==0){
ArrNum+=1;
Pagelist[ArrNum] = [];
}
}
Downlist = Pagelist[0];
Ctrl(Downlist,true);
function Ctrl(data,is,clear){
if(is){
_this.html(DomStart+AddDom(data)+DomEnd);
}else{
if(clear){
_this.find('.Dropdown-menu').html('');
}
_this.find('.Dropdown-menu').append(AddDom(data));
}
}
_this.find('.DownText').keyup(function(){
AddNum = 0;
var _index=0;
ArrNum = 0;
Derlist = [];
Derlist[ArrNum] = [];
var text = $(this).val();
if(text==''){
Type=true;
Ctrl(Pagelist[0],false);
return false;
}
_this.Clear = function(){
alert(1)
}
Pagelist.forEach(function(e){
e.forEach(function(res){
if(res.name.indexOf(text)>-1){
Derlist[ArrNum].push(res);
_index++;
if(_index==19){
_index=0;
ArrNum+=1;
Derlist[ArrNum] = [];
}
}
})
})
Ctrl(Derlist[0],false,true);
Type=false;
})
_this.delegate('li','click',function(){
var Value = new Object();
Value.name=$(this).text();
Value.id = $(this).attr('name');
_this.find('.btn-Down-value').text($(this).text()).attr('name',$(this).attr('name'))
_this.find('.Dropdown').stop().slideToggle(100);
Return(Value);
})
//toggle
_this.find('.dropdown-toggle').click(function(){
_this.find('.Dropdown').stop().slideToggle(100);
})
//滚动加载
_this.find('.Dropdown-menu').scroll(function(){
if($(this).scrollTop()>$(this).height()+50){
AddNum+=1
if(Type){
Ctrl(Pagelist[AddNum],false);
}else{
Ctrl(Derlist[AddNum],false);
}
}
})
//添加dom
function AddDom(data){
var text = '';
for(i in data){
text+="<li name='"+data[i].id+"'><a href='javascript:;' title='"+data[i].name+"' >"+data[i].name+"</a></li>"
}
return text;
}
function Return(str){
return options.returnVal(str);
}
}
})
})()
最近一直在学习怎么用jq写插件,最近终于估摸着做出来了。但是有一个问题一直不知道怎么解决。如何能在外部引用内部的某一个方法呢?比如我在内部写了一个清空的方法。但是想在外部调用该怎么弄呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看你怎么写的了,比如说jquery.cookie这个插件,它就反回了$.cookie()和$.removeCookie()者两个方法,就可以直接调用这两个方法