Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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,get.attr(";id";),基于id调用函数_Javascript_Jquery - Fatal编程技术网

Javascript jQuery,get.attr(";id";),基于id调用函数

Javascript jQuery,get.attr(";id";),基于id调用函数,javascript,jquery,Javascript,Jquery,我不想运行一个大的if,else,else,else类型语句。我基本上是在寻找一个excel INDIRECT()等价物,在这里我得到id的字符串,并根据我迭代的id将该字符串作为函数调用。 我有jQuery生成微调器所基于的类的输入 $(document).ready(function(){ var primary = $(".spinnerPrimary"); var secondary = $(".spinnerSecondary"); primary.spinne

我不想运行一个大的if,else,else,else类型语句。我基本上是在寻找一个excel INDIRECT()等价物,在这里我得到id的字符串,并根据我迭代的id将该字符串作为函数调用。 我有jQuery生成微调器所基于的类的输入

$(document).ready(function(){
    var primary = $(".spinnerPrimary");
    var secondary = $(".spinnerSecondary");
    primary.spinner({
        min: 7,
        max: 20,
    });
    primary.spinner("value", 10);
    secondary.spinner({
        min: -4,
        max: 4
    });
    secondary.spinner("value", 0);
在执行max、min等操作时,我想执行一个spin事件,该事件调用一个函数来更新各种span容器。我可以运行一个只更新每个跨度的函数,或者运行一个大的if/else/else case类型语句,所以我有选项。我真正想要的是使用
this.attr(“id”)
提取id,这样每个微调器都有一个基于该输入微调器id的旋转集,即与定义函数名称对应的同一字符串

$(document).ready(function(){
    var primary = $(".spinnerPrimary");
    var secondary = $(".spinnerSecondary");
    primary.spinner({
        min: 7,
        max: 20,
        spin: //fancy code
    });
    primary.spinner("value", 10);
    secondary.spinner({
        min: -4,
        max: 4,
        spin: //same fancy code
    });
    secondary.spinner("value", 0);

    function x() {
        //fancy equation code
    };

    function y() {
        //fancy equation code
    };
在上面的示例中,如果id是“x”,那么我希望它调用函数x(),id=“y”调用y(),等等。我在寻找如何执行此特定场景,而不是如何以另一种方式执行(例如,基于已知id和相应函数运行if/else)。如果我提到的两个备选方案是实现这一目标的唯一方法,那么就这样吧

重复另一个问题:非常相似,但也需要帮助映射函数并将其应用于微调器。对于jQuery来说还是个新问题,所以是一个多方面的(?)问题

这样试试:

//将函数设置为映射,以便于
//可通过名称访问。
var fns={
x:函数(){
log('running x!');
},
y:函数(){
console.log('runningy!');
}
}
主要变量=$(“.spinnerPrimary”);
primary.spinner=函数(选项){
//将“spin”函数绑定到微调器。
console.log('spinning');
options.spin();
}
主旋转器({
民:7,,
最高:20,
//将“spin”分配给上面的一个“fn”
//使用'id'作为密钥。
自旋:fns[primary.attr('id')]
});

太棒了,非常感谢!这涉及到我不太熟悉的东西,所以是时候做更多的研究了,但你为我指明了正确的方向。非常感谢。