您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Web开发 >> (JavaScript)jquery变量加不加var问题

(JavaScript)jquery变量加不加var问题

来源:网络整理     时间:2016/8/4 19:56:07     关键词:

关于网友提出的“ (JavaScript)jquery变量加不加var问题”问题疑问,本网通过在网上对“ (JavaScript)jquery变量加不加var问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: (JavaScript)jquery变量加不加var问题
描述:

/* 右侧下部品牌活动横向滚动效果 */
$(function(){
var index = 0;
$buttonlist = $("#activity-title ul li");      //为什么这里如果为var $buttonlist = $("#activity-title ul li"); 
$buttonlist.click(function(){
var index = $buttonlist.index(this);
imgSlide(index);
})
})
function imgSlide(index){
$buttonlist.eq(index).addClass("chos")           //这里的$buttonlist就不能用了
.siblings().removeClass("chos");
}


解决方案1:

作用域问题。改成这样就OK了,你上面click选定的对象为$(this),调用方法传值时就可以把该对象$(this)传递过去。
或者也可以沿袭你的,把$(this).index()这个序号传递过去,但是这样的话,到那边的方法中还得重新进行一次DOM对象的选取,略麻烦。
改了之后的代码如下:


$(function(){
var $buttonlist = $("#activity-title ul li");      
$buttonlist.click(function(){
imgSlide($(this));
})
})
function imgSlide(_this){
_this.addClass("chos")          
.siblings().removeClass("chos");
}
解决方案2:

不加 var就是全局变量,所有页面都可以访问.$符号并不是jquery的声明变量是你理解错误了

解决方案3:

不加var就被提升成为全局变量了。

解决方案4:

不加var在严格模式下会报错,要养成习惯加上var。
把var $buttonlist = ....  写在$(function(){...}外面就成全局变量了。下面的函数就能接收到。

解决方案5:

作用域问题 不加var是全局变量 加var只能在对应的函数内访问 函数外访问不到


以上介绍了“ (JavaScript)jquery变量加不加var问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3110527.html

相关图片

相关文章