Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
Jquery 如何通过每次使用传递不同的#id来使函数动态化?_Jquery - Fatal编程技术网

Jquery 如何通过每次使用传递不同的#id来使函数动态化?

Jquery 如何通过每次使用传递不同的#id来使函数动态化?,jquery,Jquery,我正在尝试重用这个函数,但要使它能够传递不同的选择器,而不是每次都要为不同的选择器名称多次编写函数 以下是我到目前为止的代码。 如果你看我的代码,我想改变变量元素。所以我可以传入'about',它会将变量元素更改为$(“about slide.animate”)。 我希望这能让你自食其力 function animateLight() { var elem = $("#solutions-slide .animate"); elem.fadeIn(); setIn

我正在尝试重用这个函数,但要使它能够传递不同的选择器,而不是每次都要为不同的选择器名称多次编写函数

以下是我到目前为止的代码。 如果你看我的代码,我想改变变量元素。所以我可以传入'about',它会将变量元素更改为$(“about slide.animate”)。 我希望这能让你自食其力

    function animateLight() {
    var elem = $("#solutions-slide .animate");
    elem.fadeIn();
    setInterval(function(){
      elem.animate({
        opacity: "-=0.1"
      }, 200 , function() {
        if(elem.css("opacity") <= 0.5){
         $(this).css({
          opacity: '1'
        });
      }
      });
    },50);
  }
函数animateLight(){
var elem=$(“#解决方案幻灯片.动画”);
元素fadeIn();
setInterval(函数(){
动画元素({
不透明度:“-=0.1”
},200,函数(){

如果(elem.css(“不透明”)我会将其更改为:

然后可以通过执行
animateLight(“解决方案”);


我会改为:

然后可以通过执行
animateLight(“解决方案”);


像这样的东西听起来像你要找的:

function animateLight(prefix) {
    var elem = $("#" + prefix + "-slide .animate");
    elem.fadeIn();
    setInterval(function(){
        elem.animate({
            opacity: "-=0.1"
        }, 200 , function() {
            if(elem.css("opacity") <= 0.5){
            $(this).css({
                opacity: '1'
            });
        }
    });
    },50);
}
函数animateLight(前缀){
var elem=$(“#”+前缀+“-slide.animate”);
元素fadeIn();
setInterval(函数(){
动画元素({
不透明度:“-=0.1”
},200,函数(){

如果(elem.css(“opacity”)类似的内容听起来像您正在寻找的内容:

function animateLight(prefix) {
    var elem = $("#" + prefix + "-slide .animate");
    elem.fadeIn();
    setInterval(function(){
        elem.animate({
            opacity: "-=0.1"
        }, 200 , function() {
            if(elem.css("opacity") <= 0.5){
            $(this).css({
                opacity: '1'
            });
        }
    });
    },50);
}
函数animateLight(前缀){
var elem=$(“#”+前缀+“-slide.animate”);
元素fadeIn();
setInterval(函数(){
动画元素({
不透明度:“-=0.1”
},200,函数(){

如果(elem.css(“opacity”)有两种简单的方法可以解决这个问题,一种方法是使用enum和 switch语句

var SELECTOR_ENUM = { solutions: 0, about: 1 };

function animateLight(selector) {
    var suffix = "-slide .animate";
    switch( selector ) {
        case 0:
            elem = $( "#solutions" + suffix );
        break;
        case 1:
            elem = $( "#about" + suffix );
        break;
        //you see where im going...
        default:
            elem = $( "#solutions" + suffix );
        break;
    }
        //the rest of your code
}
我知道这是更多的代码,但这是非常可扩展的,只需添加新的选择器到 enum和switch语句以及您的就绪状态。最好的部分是您不必这样做 每次调用函数时键入选择器,以最大限度地减少出错的机会 发生。但是,如果要在多个函数中使用选择器,
我建议使用数组或字典将所有选择器放在一个位置。

有两种简单的方法可以解决这个问题,一种方法是使用枚举和 switch语句

var SELECTOR_ENUM = { solutions: 0, about: 1 };

function animateLight(selector) {
    var suffix = "-slide .animate";
    switch( selector ) {
        case 0:
            elem = $( "#solutions" + suffix );
        break;
        case 1:
            elem = $( "#about" + suffix );
        break;
        //you see where im going...
        default:
            elem = $( "#solutions" + suffix );
        break;
    }
        //the rest of your code
}
我知道这是更多的代码,但这是非常可扩展的,只需添加新的选择器到 enum和switch语句以及您的就绪状态。最好的部分是您不必这样做 每次调用函数时键入选择器,以最大限度地减少出错的机会 发生。但是,如果要在多个函数中使用选择器,
我建议使用数组或字典将所有选择器放在一个地方。

为什么不让事情变得更灵活一些呢?
函数animateLight(obj){var elem=$(obj);
以及上面提到的其他内容?然后可以传入选择器、jQuery对象或DOM元素——基本上是
$()
理解。为什么不让事情变得最灵活呢?
函数animateLight(obj){var elem=$(obj);
以及上面提到的其他内容?然后可以传入选择器、jQuery对象或DOM元素——基本上是
$()
理解。谢谢!这正是我想要的,我对所有的过场辩论都是陌生的。就像一个符咒。谢谢!这正是我想要的,我对所有过场辩论都是陌生的。就像一个符咒。