2015-11-13 4 views
-1

У меня есть кодкод в функции с параметрами

jQuery(function() { 
    jQuery(".class1").each(function() { 
    jQuery(".class2").hide("fast"); 
    jQuery(this).children("input").click(
     function() { 
     if (jQuery(this).parent().hasClass('class3')) { 
      jQuery(".class2").toggle("slow"); 
     } else { 
      jQuery(".class2").hide("slow"); 
     } 
     }); 
    }); 
}); 

Как я могу изменить его в одну функцию с параметрами class1, class2, class3 ко многим использования?

+1

Вам нужно узнать, как сделать функцию? Я не получаю это –

+0

Просто сделайте функцию и передайте три параметра _class_ в качестве параметров. – TGrif

+0

Я пробовал сделать что-то, чтобы использовать этот код как функцию: inputshow ('class1', 'class2', 'class3'), где class1 и т. Д. Будут, например, реальным классом, а код выше используется во многих случаев. –

ответ

1

Вы можете создать функцию, где вы делаете параметры имена классов, как так:

var exampleFunction = function(class1, class2, class3) { 
    jQuery(class1).each(function() { 
    jQuery(class2).hide("fast"); 
    jQuery(this).children("input").click(
     function() { 
     if (jQuery(this).parent().hasClass(class3)) { 
      jQuery(class2).toggle("slow"); 
     } else { 
      jQuery(class2).hide("slow"); 
     } 
     }); 
    }); 
} 

, а затем вызвать его так:

exampleFunction('.class1','.class2','class3'); 
0

Я бы просто обернуть соответствующий код в функции например, ниже doSomething, то от вашего места, где вы хотите назвать свою функцию, вы можете сделать следующее:

jQuery(function(){ 
    var class1 = jQuery(".class1"), 
     class2 = jQuery(".class2"), 
     class3 = "class3"; 

    // Reusable function doSomething 
    doSomething(class1, class2, class3name); 
}); 

function doSomething(class1, class2, class3name){ 
    class1.each(function() { 
    class2.hide("fast"); 
    jQuery(this).children("input").click(
     function() { 
     if (jQuery(this).parent().hasClass(class3)) { 
      class2.toggle(slow); 
     } else { 
      class2.hide("slow"); 
     } 
     }); 
    }); 
} 

я использовал var для того, чтобы дать классов большее значение, однако, если вы хотите что-то более короткий вы можете вызвать функцию следующим образом:

doSomething(jQuery(".class1"), jQuery(".class2"), "class3"); 
0
jQuery(function(){ 
    jQuery(".' + class1 + '").each(
    function() { 
    jQuery(".' + Class1 + '").hide("fast"); 
     jQuery(this).children("input").click(
      function(){ 
       if (jQuery(this).parent().hasClass('class3')) { 
        jQuery(".' + Class2 +'").toggle("slow"); 
       } else { 
        jQuery(".' + Class2 +'").hide("slow"); 
       } 
      }); 
    }); 
}); 
Смежные вопросы