Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以’;我不能调用存储在数组中的jQuery方法吗?_Javascript_Jquery_Html_Methods - Fatal编程技术网

Javascript 为什么可以’;我不能调用存储在数组中的jQuery方法吗?

Javascript 为什么可以’;我不能调用存储在数组中的jQuery方法吗?,javascript,jquery,html,methods,Javascript,Jquery,Html,Methods,按钮应该在图像上执行显示、隐藏、切换等功能,但它们不能按预期工作。有人告诉我,我正在销毁show、hide等函数中对this的引用。我怎样才能解决这个问题 // var functionArray=[$('img')。显示,$('img')。隐藏,$('img')。切换,$('img')。fadeIn,$('img')。淡出,$('img')。淡出切换]; 变量buttonArray=[$('.show'),$('.hide'),$('.toggle'),$('.fadein'),$('.fa

按钮应该在图像上执行
显示
隐藏
切换
等功能,但它们不能按预期工作。有人告诉我,我正在销毁
show
hide
等函数中对
this
的引用。我怎样才能解决这个问题

//
var functionArray=[$('img')。显示,$('img')。隐藏,$('img')。切换,$('img')。fadeIn,$('img')。淡出,$('img')。淡出切换];
变量buttonArray=[$('.show'),$('.hide'),$('.toggle'),$('.fadein'),$('.fadeout'),$('.fadetog')]
变量计数器=0
while(计数器<按钮长度){
执行器(计数器)
柜台++
}
函数执行器(计数器){
buttonArray[计数器]。单击(函数(){
功能性[计数器]();
})
}


显示 隐藏 切换 淡入 淡出 淡入开关
没错,当您将方法与其对象分开存储时,上下文会丢失

由于所有方法的上下文对象都是相同的,因此解决这个问题的最简单方法是根本不存储上下文对象,而只存储方法名称

functionArray
将只包含作为字符串的方法名;然后可以通过
$(“img”)[functionArray[counter]]()访问和调用它们

展开此代码段以查看正在运行的工作代码:

var functionArray=[
“表演”,
“隐藏”,
“切换”,
“法登”,
“逐渐消失”,
“衰减切换”
],
按钮射线=[
$('.show'),
$('.hide'),
$('.toggle'),
$('.fadein'),
$(“.fadeout”),
$(“.fadetog”)
],
计数器=0;
while(计数器<按钮长度){
执行器(计数器);
计数器++;
}
函数执行器(计数器){
buttonArray[计数器]。单击(函数(){
$(“img”)[功能阵列[计数器]]();
})
}


显示 隐藏 切换 淡入 淡出 淡入淡出切换