Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrócenie kodu .js, wątek pomocy w skracaniu istniejącego kodu
Orgin
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.08.2013

Ostrzeżenie: (0%)
-----


Witam - mam taki kod jak poniżej, ale chciałbym umieścić 500 elementów. Ręczne wbijanie tylu elementów jest drakońskie. Jak to skrócić?
registration = function (local_conf)
{
if (typeof jQuery === 'undefined') {
throw 'registration exception: jQuery not found.';
}

var conf = {};

conf.boxId = null;
conf.env = null;

/**
* @param {Object} data
*/
var init = function (local_conf)
{
conf = jQuery.extend(conf, local_conf);

//
init = function () { };


jQuery( 'div.chamber_menu a' ).click( function()
{
var menuType = this.name;

jQuery( 'div.chamber_menu a' ).attr( 'class', '' );
jQuery( this ).attr( 'class', 'active' );

switch(menuType) {
case '0-1':
jQuery('div.form-2').hide();
jQuery('div.form-3').hide();
jQuery('div.form-4').hide();
jQuery('div.form-5').hide();
jQuery('div.form-1').show();
jQuery('div.form-6').hide();
jQuery('div.form-7').hide();
jQuery('div.form-8').hide();
break;
case '0-2':
jQuery('div.form-2').show();
jQuery('div.form-1').hide();
jQuery('div.form-3').hide();
jQuery('div.form-4').hide();
jQuery('div.form-5').hide();
jQuery('div.form-6').hide();
jQuery('div.form-7').hide();
jQuery('div.form-8').hide();
break;
case '0-3':
jQuery('div.form-1').hide();
jQuery('div.form-2').hide();
jQuery('div.form-4').hide();
jQuery('div.form-3').show();
jQuery('div.form-5').hide();
jQuery('div.form-6').hide();
jQuery('div.form-7').hide();
jQuery('div.form-8').hide();
break;
case '0-4':
jQuery('div.form-1').hide();
jQuery('div.form-2').hide();
jQuery('div.form-3').hide();
jQuery('div.form-5').hide();
jQuery('div.form-6').hide();
jQuery('div.form-4').show();
jQuery('div.form-7').hide();
jQuery('div.form-8').hide();
break;
case '0-5':
jQuery('div.form-1').hide();
jQuery('div.form-2').hide();
jQuery('div.form-3').hide();
jQuery('div.form-4').hide();
jQuery('div.form-6').hide();
jQuery('div.form-7').hide();
jQuery('div.form-5').show();
jQuery('div.form-8').hide();
break;
case '0-6':
jQuery('div.form-1').hide();
jQuery('div.form-2').hide();
jQuery('div.form-3').hide();
jQuery('div.form-4').hide();
jQuery('div.form-6').show();
jQuery('div.form-5').hide();
jQuery('div.form-7').hide();
jQuery('div.form-8').hide();
break;
case '0-7':
jQuery('div.form-1').hide();
jQuery('div.form-2').hide();
jQuery('div.form-3').hide();
jQuery('div.form-4').hide();
jQuery('div.form-7').show();
jQuery('div.form-5').hide();
jQuery('div.form-6').hide();
jQuery('div.form-8').hide();
break;
case '0-8':
default:
jQuery('div.form-1').hide();
jQuery('div.form-2').hide();
jQuery('div.form-3').hide();
jQuery('div.form-4').hide();
jQuery('div.form-5').hide();
jQuery('div.form-8').show();
jQuery('div.form-6').hide();
jQuery('div.form-7').hide();
break;
}

return false;
});
};

jQuery(document).ready(
function ()
{
init(local_conf);
}
);
}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@zegarek84: Mamy linię najmniejszego oporu, nie najmniejszą linię oporu. (IMG:style_emoticons/default/wink.gif)
@Orgin: Masz kilka podstawowych błędów. Przede wszystkim CSS-owskie klasy traktujesz jako identyfikatory. Powinieneś wszystkim tym formularzom nadać jedną wspólną klasę oraz każdemu z osobna unikalny identyfikator:
  1. <form ... class="my-form" id="my-form-1">...</form>
  2. <form ... class="my-form" id="my-form-2">...</form>
  3. ...
  4. <form ... class="my-form" id="my-form-n">...</form>
Dzięki temu będziesz mógł wygodnie operować tak na wszystkich formularzach jak i na każdym z osobna.
[JAVASCRIPT] pobierz, plaintext
  1. (function($) {
  2. "use strict";
  3.  
  4. var $menuLinks = $("div.chamber_menu a");
  5. var $forms = $(".my-form");
  6.  
  7. $menuLinks.on("click", function(e) {
  8. e.preventDefault();
  9.  
  10. // Nie kasuj wszystkich klas, a jedynie tą, która Cię interesuje
  11. $menuLinks.removeClass("active");
  12. $(this).addClass("active");
  13.  
  14. $forms.hide();
  15. $("#my-form-" + this.name).show();
  16. });
  17. })(window.jQuery);
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 08:06