2010-09-29 6 views
1

J'ai un bloc de code:jQuery - exécuter un bloc de code dans une ligne

   $('#link_dwebsitedesign a').removeClass('selected'); 
      $('#link_dhuisstijl a').removeClass('selected'); 
      $('#link_dhosting a').removeClass('selected'); 
      $('#link_dwordpress a').removeClass('selected'); 
      $('#link_dseo a').removeClass('selected'); 
      $('#link_dcms a').removeClass('selected'); 
      $('#link_dslicen a').removeClass('selected'); 
      $('#link_dwebshop a').removeClass('selected'); 

Et il doit être exécuté à plusieurs reprises dans mon script.

N'y a-t-il pas un sélecteur ou quoi que ce soit pour que je puisse exécuter ce bloc de code sur une ligne?

Exemple: $('blockofcode').execute();

+0

votre HTML et tout, '$ ('a'). removeClass ('selected')' peut être suffisant. –

Répondre

3

Vous pouvez envelopper le code dans une fonction:

 function mycode(){ 
     $('#link_dwebsitedesign a').removeClass('selected'); 
     $('#link_dhuisstijl a').removeClass('selected'); 
     $('#link_dhosting a').removeClass('selected'); 
     $('#link_dwordpress a').removeClass('selected'); 
     $('#link_dseo a').removeClass('selected'); 
     $('#link_dcms a').removeClass('selected'); 
     $('#link_dslicen a').removeClass('selected'); 
     $('#link_dwebshop a').removeClass('selected'); 
    } 

Et appelez votre fonction où vous voulez:

mycode(); 

Voir Javascript Functions tutoriel pour plus d'informations.

+0

Thnx! Ça marche. – basm

+0

@basm: Bienvenue :) – Sarfraz

0

le mettre dans une fonction, puis appeler la fonction à la place.

1

Créer un petit plugin qui fait cela pour vous, puisque vous semblez le faire tout le temps:

(function($) { 
    $.fn.removeSelected = function() { 
    return $(this).each(function() { 
     $('a', this).removeClass('selected'); 
    }); 
    }); 
})(jQuery); 

Passez ensuite jQuery un tableau de sélecteurs pour enlever la classe ...

var links_array = ['#link_dwebsitedesign', '#link_dhuisstijl', '#link_dhuisstijl', '#link_dwordpress', '#link_dseo', '#link_dcms', '#link_dslicen', '#link_dwebshop']; 

function removeLinks(links) { 
    $(links.join(', ')).removeSelected(); 
} 
removeLinks(links_array); 

Et voilà!

2

Puis-je suggérer qu'il pourrait être raccourci:

$('#link_dwebsitedesign a, #link_dhuisstijl a, #link_dhosting a, #link_dwordpress a, #link_dseo a,#link_dcms a, #link_dslicen a, #link_dwebshop a').toggleClass('selected'); 

Ce qui fait la même chose. Vous pouvez le mettre dans une fonction comme ceci:

function jQuery_ToggleSelected() 
{ 
    $('#link_dwebsitedesign a, #link_dhuisstijl a, #link_dhosting a, #link_dwordpress a, #link_dseo a,#link_dcms a, #link_dslicen a, #link_dwebshop a').toggleClass('selected');  
} 

Et appelé jQuery_ToggleSelected() ajouter/supprimer le style désiré à ces éléments.

0

Je donnerais tous les #link_dwebsitedesign, #link_dhuisstijl, etc. éléments d'une classe commune, par exemple class="link", puis il suffit d'utiliser .class selector comme ceci:

$(".link a").removeClass("selected"); 

Vous pouvez le faire partout où vous vous trouver le code à répéter ... si vous souhaitez gérer les éléments d'un lot, utiliser une classe commune pour les identifier, puis opérer sur cette classe.

0
$('#link_dwebsitedesign a , #link_dhuisstijl a, #link_dhosting a, #link_dwordpress a, #link_dseo a, #link_dcms a, #link_dslicen a, #link_dwebshop a').removeClass('selected'); 

Ou le mettre dans une fonction

1

Vous pouvez utiliser une classe qui est la même pour tous et appeler

$('.link a').removeClass('selected'); 

Ou si vous savez quel élément vous appelez vous pouvez supprimer tous ceux avec ids commençant par lien (avec div):

$('div[id^=link_] a').removeClass('selected'); 

ou appelez tout d'une fonction

function removeLinkSelects(){ 
    $('#link_dwebsitedesign a').removeClass('selected'); 
    $('#link_dhuisstijl a').removeClass('selected'); 
    $('#link_dhosting a').removeClass('selected'); 
    $('#link_dwordpress a').removeClass('selected'); 
    $('#link_dseo a').removeClass('selected'); 
    $('#link_dcms a').removeClass('selected'); 
    $('#link_dslicen a').removeClass('selected'); 
    $('#link_dwebshop a').removeClass('selected'); 
} 
removeLinkSelects(); 

je serais probablement plus susceptibles d'utiliser ceux dans cet ordre, si je ne pouvais pas/ne voulais pas ajouter une classe utiliser le sélecteur de attr et si cela était une utilisation très différentes en fonction. Bien que la structure du code puisse être structurée, je serais plus enclin à l'utiliser, mais je ne sais pas pourquoi vous les avez marqués comme ça et c'est très logique.

Questions connexes