2011-09-19 12 views
7

Sto tentando di creare una funzione jquery e di utilizzare il codice riportato di seguito, ma non di ottenere alcun risultato. Per favore dimmi il processo per farlo.Crea funzione in jquery

<script type="text/javascript"> 
    (function($){ 
     $.fn.myplugin = function(){ 
      alert(this.id); 
     }; 
    })(jQuery); 

    $("#sample").myplugin(); 
</script> 
+0

Cosa Firebug ti dice? –

+0

hai l'elemento con un "campione" di id da qualche parte nel tuo documento? questo tag 'script' è posizionato sotto l'HTML? in caso contrario, avvolgere il codice con '$ (document) .ready (function() {// qui va il tuo codice});' –

risposta

11

si può vedere il codice di lavoro qui - http://jsfiddle.net/gryzzly/YxnEQ/

Si noti che avete bisogno di un elemento con ID "campione" di essere presenti nel documento quando si esegue quanto sopra codice. Inoltre, il this sta indicando oggetto jQuery, quindi al fine di ottenere gli elementi identificativi, è necessario utilizzare uno dei seguenti:

alert(this[0].id); 

o

alert(this.attr('id')); 

Il primo è preferibile, perché è Più veloce.

+0

hey ho usato lo stesso ma non ha funzionato :( –

+0

in che browser sei? JQuery caricato nella pagina? –

+0

Sto lavorando in Firefox e sì jquery è caricato –

0
alert(this.attr('id')); 

this in questo contesto è un oggetto jQuery, non un elemento DOM grezzo.

+0

quindi quale dovrebbe essere il codice e come implementerò qualsiasi funzione jquery? –

1

Prova a cambiare

 alert(this.id); 

a

 alert(this[0].id); 

Come stai ricevendo una matrice di oggetti jQuery.

+0

No non sto ricevendo alcun array ... e ho provato sopra la linea ma non ha funzionato ... –

3

Prova questo:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#sample").myplugin(this.id); 
}); 

function myplugin(id) { 
    alert(id); 
} 
</script> 
5

Prova questo:

<script type="text/javascript"> 
$(document).ready(function(){ 
    myplugin($("#sample")); 
}); 

    function myplugin(obj){ 
    alert(obj.id); 
    } 
</script> 
+0

In realtà non ero in grado di soluzione di allenamento data da @Kanishka, quindi questa risposta è un miglioramento per la sua soluzione. Ho solo pensato di condividerlo –