Javascript 使匿名自动执行的函数可重用
我有以下功能:Javascript 使匿名自动执行的函数可重用,javascript,jquery,Javascript,Jquery,我有以下功能: (function(e, t) { var n = function() { //code, code, code }; //code, code, code e.fn.unslider = function(t) { //code, code, code }; })(jQuery, false) 要调用此函数,我正在使用: var unslider = $('.slider__1').unslider(); $('.slider__1
(function(e, t) {
var n = function() {
//code, code, code
};
//code, code, code
e.fn.unslider = function(t) {
//code, code, code
};
})(jQuery, false)
要调用此函数,我正在使用:
var unslider = $('.slider__1').unslider();
$('.slider__1 .arrows').click(function() {
var fn = this.className.split(' ')[1];
unslider.data('unslider')[fn]();
});
我需要让这个功能重新启动窗口大小调整。我知道,这种函数不能被调用,只能执行一次。
要重用此函数,我应该在同一范围内声明它,并从事件处理程序调用它,如下所示:
$(function() {
function myFunction(evt) {
console.log(evt);
}
$(window).on('load resize', myFunction);
});
但它不起作用
我甚至尝试使用以下结构:
(function() {
var fn = function(jQuery, yourbool) {
// code, code, code
};
fn(jQuery, false);
$(window).on('load resize', function () {
fn(jQuery, false);
});
});
也不行
我做错了什么?你能告诉我如何重新制作这个函数来重新启动窗口大小调整吗
(函数(e,t){
var n=函数(){
函数r(t,r){
如果(t==“点”){
r='';
e、 每个(n.li,功能(e){
r++'“+++e+” ”
});
r+=“”
}否则{
r=''+r+t+'prev'>'+n.o.prev+''+r+t+'next'>'+n.o.next+''
}
n、 el.addClass(“has-”+t+“s”)。追加(r)。查找(“.”+t)。单击(函数(){
var t=e(本);
t、 hasClass(“点”)?n.stop()to(t.index()):t.hasClass(“上一个”)?n.prev():n.next()
})
}
var n=这个;
n、 o={
速度:500,,
延迟:3e3,
初始化:0,
停顿一下:!t,
循环:!t,
关键词:t,
圆点:t,
箭头:t,
上一页:“←”,
下一步:“→”,
液体:t,
起点:t,
完成:t,
项目:“>ul”,
项目:“>李”,
放松:“挥杆”,
自动播放:对
};
n、 init=函数(t,i){
n、 o=e.extend(n.o,i);
n、 el=t;
n、 ul=t.find(无项目);
n、 最大值=[t.外径()| 0,t.外径()| 0];
n、 li=n.ul.查找(n.o.项)。每个(功能(t){
var r=e(本),
i=r.外径(),
s=r.outerHeight();
如果(i>n.max[0])n.max[0]=i;
如果(s>n.max[1])n.max[1]=s
});
var i=不适用,
s=n.ul,
o=n.li,
u=o.长度;
n、 i=0;
t、 css({
宽度:n.max[0],
高度:o.first().outerHeight(),
溢出:“隐藏”
});
s、 css({
职位:“相对”,
左:0,,
宽度:u*100+“%”
});
o、 css({
“浮动”:“左”,
宽度:n.max[0]+“px”
});
i、 自动播放和设置超时(函数(){
如果(i.延迟| 0){
n、 play();
如果(i.暂停){
t、 打开(“鼠标悬停”,功能(e){
n、 停止();
e、 类型==“鼠标输出”&&n.播放()
})
}
}
},i.init | 0);
如果(i.keys){
e(文件)。按键(功能(e){
var t=e;
如果(t==37)n.prev();
如果(t==39)n.next();
如果(t==27)n.停止()
})
}
i、 点和r(“点”);
i、 箭头和r(“箭头”);
如果(i.流体){
e(窗口)。调整大小(函数(){
n、 r&清除超时(n.r);
n、 r=设置超时(函数(){
变量e={
高度:o.eq(n.i.)外倾角()
},
r=t.外径();
s、 css(e);
e[“宽度”]=Math.min(Math.round(r/t.parent().width()*100),100)+“%”;
t、 css(e)
}, 50)
}).resize()
}
如果(如事件特殊[“滑动”]|如事件(“滑动”)){
t、 打开(“swipeleft swiperight swipeleft swiperight”,函数(e){
e、 type.toLowerCase()=“swipeleft”?n.next():n.prev()
})
}
返回n
};
n、 to=函数(r,i){
如果(不适用){
n、 停止();
n、 play()
}
var s=不适用,
o=n.el,
u=n.ul,
a=n.li,
l=n.i,
c=a.eq(r);
e、 isFunction(s.starting)&&!i&&s.starting(o,a.eq(l));
if(!c.length | r<0)和&s.loop==t)返回;
如果(!c.length)r=0;
如果(r<0)r=a.length-1;
c=a.eq(r);
var h=i?5:s.速度| 0,
p=s,
d={
高度:c.室外高度()
};
如果(!u.queue(“fx”).长度){
o、 查找(“.dot”).eq(r).addClass(“活动”).sides().removeClass(“活动”);
o、 动画(d、h、p)和u.animate(e.extend)({
左:“-”+r+“00%”
}h,p,函数(t){
n、 i=r;
e、 isFunction(s.complete)&&!i&&s.complete(o,c)
})
}
};
n、 play=函数(){
n、 t=设置间隔(函数(){
n、 至(n.i+1)
},不另作说明,延迟(0)
};
n、 停止=函数(){
n、 t=净间隔(n.t);
返回n
};
n、 下一步=函数(){
将n.stop()返回到(n.i+1)
};
n、 prev=函数(){
将n.stop()返回到(n.i-1)
};
};
e、 fn.unslider=函数(t){
var r=该长度;
返回此。每个函数(i){
var s=e(本),
u=“unslider”+(r>1?”-“+++i:”),
a=(新n).init(s,t);
s、 数据(u,a)。数据(“键”,u)
})
};
n、 version=“1.0.0”
})(jQuery,false)
var unslider_自动播放={
自动播放:错误
};
var unslider=$('.slider_uu1').unslider(unslider_autoplay);
$('.slider__1.arrows')。单击(函数(){
var fn=this.className.split(“”)[1];
不滑动数据('unslider')[fn]();
});代码>
。步骤箭头{
位置:绝对位置;
宽度:300px;
填充:19px 0px;
边缘顶部:128px;
z指数:1;
}
.箭头{
宽度:71px;
高度:67px;
浮动:左;
背景图片:url(http://rockerbox.com/assets/img/general/left-arrow.png);
背景重复:无重复;
背景位置:50%50%;
}
.下一个{
宽度:72px;
高度:67px;
浮动:对;
背景图片:url(http://rockerbox.com/assets/img/general/right-arrow.png);
背景重复:无重复;
背景位置:50%50%;
}
.slider___1:悬停箭头{
背景色:rgba(255、255、255、.1);
-webkit边界半径:0px 4px 0px;
-moz边界半径:0px 4px 4px 0px;
边界半径:0px 4px 0px;
}
A.
$( window ).resize(myFunction);
$(function() {
function myFunction(evt) {
console.log(evt);
}
$( window ).resize(myFunction);
});