javascript – 如何创建一个字符串并使用以它命名的函数?
作者:互联网
对于问题中的错误措辞感到抱歉,但我很难解释.我在页面上使用了几个bxsliders,有些则放在隐藏的div中.不幸的是,除非重新加载滑块,否则在使父div可见之后,滑块中不会显示图像(参见此处:bxSlider within show/hide divs).所以让我说我在开头用以下方法启动滑块:
var slider_0=$("#slider_0 .bxslider").bxSlider({
//bxslider options here
});
var slider_4=$("#slider_4 .bxslider").bxSlider({
//bxslider options here
});
var slider_7=$("#slider_7 .bxslider").bxSlider({
//bxslider options here
});
滑块没有连续编号,但有一个导航,如果我点击第7个元素,它会导致slider_7.所以我可以得到被点击项目的索引:
$(this).index();
当我调用slider_7.reloadSlider();它会工作,但我不知道用户点击了哪个滑块以及它具有哪个数字.那么可以用这样的创建字符串调用它:
slider_name='slider_'+$(this).index();
slider_name.reloadSlider();
当然不是.有办法吗?
解决方法:
我会创建一个字典作为键,字符串作为值.然后,您可以O(1)查找您要定位的功能.
一般来说,你可以这样做:
// set up your dictionary
var dictionary = {};
// add your functions
dictionary['methodName'] = function() {};
// call the functions
dictionary['methodName']();
所以,对于你的例子,你可以这样做:
dictionary['slider_7'] = slider_7.reloadSlider;
dictionary['slider_'+$(this).index()]();
标签:javascript,function,string,bxslider 来源: https://codeday.me/bug/20190725/1529699.html