编程语言
首页 > 编程语言> > javascript – 如何创建一个字符串并使用以它命名的函数?

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