关于网友提出的“ (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