Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Plugin JQuery

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    158

    Plugin JQuery

    Ciao a tutti,
    sono alle prese con la creazione di un plugin JQuery.
    Ho un problema progettuale: solitamente trovo dei plugin che vengono inizializzati su un particolare tag della pagina, quindi l'html chiama il plugin in un modo simile: $("#test").nomeplugin()
    Ovvero estende la funzione a quel particolare elemento.
    Io però dovrei creare un plugin che valga su tutto il sito e che abbia diverse funzioni. Per esempio deve contenere una funzione che al click su un elemento con una determinata classe deve compiere sempre la stessa operazione, passando però uno o più parametri diversi in base alla pagina in cui mi trovo.
    Come posso crearla una cosa simile? Più che altro come posso inizializzarla e chiamarla?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il fatto che debba valere per tutto il sito non e' una discriminante: includi lo script in tutte le pagine

    se veramente non c'e' sempre un elemento "soggetto" del tuo plugin, ma mi suona veramente strano considerata la potenza dei selettori di jquery,
    puoi scrivere un plugin che estenda jquery stesso

    in tal caso richiamerai
    $.nomePlugin()

    da dentro il plugin pero' dovrai sempre ricavarti gli elementi coinvolti, quindi non ne vedo una stretta necessita',
    in genere si usa questa tecnica quando piu' plugin possono far riferimento a metodi definiti dallo sviluppatore, che quindi finiscono per estendere direttamente jquery

    per quanto riguarda prendere valori dalla pagina in questione, lo fai come lo faresti in normale javascript, guardi l' indirizzo del documento, guardi un eventuale querystring, eventuali globali settate al momento della valutazione etc etc

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    158
    Intanto grazie.
    Se pensassi al plugin da richiamare ad ogni "soggetto" e il mio sito prevede n funzioni che devono essere univoche come il click su un button che mi apre lo stesso popup in tutte le pagine, dovrei fare una cosa come:
    $("#test1").nomeplugin();
    $("#test2").nomeplugin();
    ....
    $("#testN").nomeplugin();
    E mettere queste righe in tutte le pagine. Teoricamente dovrei fare così includendole chiaramente nel file js, però mi torna strano

    Ciao

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Al posto di farlo su determinati id che magari non puoi sapere quanti sono se fossero tipo

    tipo_1 tipo_2..... senza stare a fare un ciclo dai una classe ai button interessati

    class="class_per_evento"

    Il js lo includi sempre(se sempre ti serve) e richiamo il plugin con quella classe

    $('.class_per_evento').plugin()

    Il fatto di fare cose diverse come detto sopra, o ti calcoli la stringa url per vedere dove sei
    o nel plugin stesso a seconda di quello che trovi nella pagina fai questo o quest'altro(cerchi una classe, id o tag).

    In alternativa se lo opzioni non sono chissa quante potresti mettere piu classi per un tag e usarle come cambio di parametri.

    class="class_per_evento uno" (con lo spazio)
    Quindi al click su class_per_evento chiami il plug in e se $(this).hasClass('uno')... allora fai questo o quello.

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da patt
    Intanto grazie.
    Se pensassi al plugin da richiamare ad ogni "soggetto" e il mio sito prevede n funzioni che devono essere univoche come il click su un button che mi apre lo stesso popup in tutte le pagine, dovrei fare una cosa come:
    $("#test1").nomeplugin();
    $("#test2").nomeplugin();
    ....
    $("#testN").nomeplugin();
    E mettere queste righe in tutte le pagine. Teoricamente dovrei fare così includendole chiaramente nel file js, però mi torna strano

    Ciao
    no, devi approfondire i selettori e il traversing prima di proseguire.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.