JQ插件中的this指向问题(function($){$.fn.slide=function(options){$.fn.slide.deflunt={effect :"fade",//效果 || fade:渐显; || top:上滚动;|| left:左滚动;|| topLoop:上循环滚动;|| leftLoop:左循环滚动;|| topMa

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 21:24:08
JQ插件中的this指向问题(function($){$.fn.slide=function(options){$.fn.slide.deflunt={effect :

JQ插件中的this指向问题(function($){$.fn.slide=function(options){$.fn.slide.deflunt={effect :"fade",//效果 || fade:渐显; || top:上滚动;|| left:左滚动;|| topLoop:上循环滚动;|| leftLoop:左循环滚动;|| topMa
JQ插件中的this指向问题
(function($){
$.fn.slide=function(options){
$.fn.slide.deflunt={
effect :"fade",//效果 || fade:渐显; || top:上滚动;|| left:左滚动;|| topLoop:上循环滚动;|| leftLoop:左循环滚动;|| topMarquee:上无缝循环滚动;|| leftMarquee:左无缝循环滚动;
autoPlay:false,//自动运行
delayTime :500,//效果持续时间
interTime :2500,//自动运行间隔.当effect为无缝滚动的时候,相当于运行速度.
defaultIndex :0,//默认的当前位置索引.0是第一个
titCell:".hd li",//导航元素
mainCell:".bd",//内容元素的父层对象
trigger:"mouseover",//触发方式 || mouseover:鼠标移过触发;|| click:鼠标点击触发;
scroll:1,//每次滚动个数.
vis:1,//visible,可视范围个数,当内容个数少于可视个数的时候,不执行效果.
titOnClassName:"on",//当前位置自动增加的class名称
autoPage:false,//系统自动分页,当为true时,titCell则为导航元素父层对象,同时系统会在titCell里面自动插入分页li元素(1.2版本新增)
prevCell:".prev",//前一个按钮元素.
nextCell:".next"//后一个按钮元素.
};
return this.each(function() {
var opts = $.extend({},$.fn.slide.deflunt,options);
var index=opts.defaultIndex;
var prevBtn = $(opts.prevCell,$(this));
var nextBtn = $(opts.nextCell,$(this));
以上为代码,最后的两个var定义,this指的是什么?用逗号隔开两个对象,是指prevBtn指向两个jquery对象吗?

JQ插件中的this指向问题(function($){$.fn.slide=function(options){$.fn.slide.deflunt={effect :"fade",//效果 || fade:渐显; || top:上滚动;|| left:左滚动;|| topLoop:上循环滚动;|| leftLoop:左循环滚动;|| topMa
这个js里面的this是指向当前调用对象的意思
比如
$('div').testFn();// 1 这里调用它
$.fn.testFn = function(){
//2 这里执行的this指向的是jq对象,也就是this === $('div');
//因为这里面的testFn是$('div')这个对象调用的,所以里面的this就指向它
}
而在
$('div').each(function(){
//这里面的this是被jq修改过的,并不是指向$('div'),而是指向的具体的dom元素
//比如,页面中有10个div,我通过$('div')选择了10个div
//那么我这个each方法会执行10此,每次的this分别指向不同的div,而不是指向$('div')这样
//我这样说你能明白?
})