C'è un modo più breve per scrivere questo copione? (Targeting più elementi per eseguire la stessa funzione)

StackOverflow https://stackoverflow.com/questions/4059870

Domanda

Così ho questa bella sceneggiatura slider che voglio usare in questa pagina: http://tuscaroratackle.com/rods per le diverse istanze sulla pagina. (In altre parole ogni registrazione asta avrà un proprio dispositivo di scorrimento, per un totale di circa 11 cursori sulla pagina)

Al fine di eseguire lo script che devo includere questo dichiarazione di funzione:

$(document).ready(function(){   
    $("#rod-slider1").easySlider();
     $("#rod-slider2").easySlider();
     $("#rod-slider3").easySlider();
     $("#rod-slider4").easySlider();
     $("#rod-slider5").easySlider();
     $("#rod-slider6").easySlider();
     $("#rod-slider7").easySlider();
     $("#rod-slider8").easySlider();
     ...etc...
  });

Quindi la domanda qui (è una domanda jQ niubbo lo so) è Posso combinare quelle linee in una sola con l'aggiunta di tutti i selettori di ID nella prima funzione? E se sì, quale sarebbe il formato corretto per la scrittura in questo modo?

È stato utile?

Soluzione

È anche possibile utilizzare una classe:

$(document).ready(function(){   
    $(".rod-slider").easySlider();
});

Il cursore verrà ora applicata a tutti / elementi aventi la rod-slider classe.

Se vuoi / necessità di utilizzare gli ID, è possibile farlo separandoli con una virgola:

$(document).ready(function(){   
    $("#rod-slider1, #rod-slider2, #rod-slider3, #etc").easySlider();
});

In alternativa, è possibile utilizzare la metodo add .

Se non si desidera modificare voi HTML corrente, è possibile utilizzare il starts with selettore :

$(document).ready(function(){   
    $("[id^='rod-slider']").easySlider();
});

Altri suggerimenti

È possibile utilizzare la starts-with selettore

$(document).ready(function(){   
     $("[id^='rod-slider']").easySlider();
  });

Questo si traduce per selezionare tutti gli elementi che hanno un id attributo che inizia con biella-cursore

È possibile migliorare le prestazioni di questo se si conosce il nome del tag è lo stesso per tutti gli elementi. Per esempio, se sono tutti i div si potrebbe scrivere come

$("div[id^='rod-slider']").easySlider();

per migliorare le prestazioni ..

$(".rodslider").easySlider(); 

Where "rodslider" is a class and not an id selector. 

Date loro tutto una classe comune, quindi utilizzare un .class selettore , in questo modo:

$(function(){   
  $(".rod-slider").easySlider();
});

È possibile aggiungere una classe e selezionare tutti insieme. Per esempio se sono DIV si può solo fare in questo modo

<div class="rodslider"></div>

e

$(document).ready(function(){   
    $("div.rodslider").easySlider();
});

Si potrebbe fare:

$(document).ready(function(){
    for (var i = 1; i <= 8; i++) {
        $("#rod-slider" + i).easySlider();
    }
});

o semplicemente utilizzare il selettore di classe ...

$(document).ready(function(){
    $(".rod-slider").easySlider();
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top