2011-09-19 25 views
7

Próbuję utworzyć funkcję jquery i używane poniżej kodu, ale nie otrzymuję żadnych danych wyjściowych. Proszę, powiedz mi, jak to zrobić.Utwórz funkcję w jquery

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

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

Co Firebug powiedzieć? –

+0

Czy masz element z identyfikatorem "próbka" gdzieś w dokumencie? czy ten tag 'script' umieszczony jest pod kodem HTML? jeśli nie, zapisz kod za pomocą '$ (document) .ready (function() {// tutaj idzie twój kod});' –

Odpowiedz

11

Można zobaczyć kod tu pracować - http://jsfiddle.net/gryzzly/YxnEQ/

Pamiętaj, że musisz elementu o identyfikatorze „próbki”, aby być obecny w dokumencie podczas uruchamiania wyżej kod. Również this wskazuje na obiekt jQuery, tak aby uzyskać identyfikator elementy, trzeba użyć jednej z następujących czynności:

alert(this[0].id); 

lub

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

Pierwszym z nich jest lepszy, bo to szybciej.

+0

hej użyłem tego samego, ale nie działało :( –

+0

Jaką przeglądarką się znajdujesz? To jQuery załadowane na stronę? –

+0

Pracuję w firefox i tak jquery jest załadowany –

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

this w tym kontekście jest to obiekt jQuery nie surowy elementem Dom.

+0

więc jaki powinien być kod i jak zaimplementować dowolną funkcję jquery? –

1

Spróbuj zmienić

 alert(this.id); 

do

 alert(this[0].id); 

Jak dostajesz obiektu Array jQuery.

+0

Nie, nie otrzymuję żadnych tablic ... i próbowałem powyżej linii, ale to nie zadziałało ... –

3

Spróbuj tego:

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

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

Spróbuj tego:

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

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

Właściwie nie byłem w stanie opracować rozwiązania podanego przez @Kanishka, więc ta odpowiedź jest ulepszeniem jego rozwiązania. Tylko pomyślałem o dzieleniu się nim –

Powiązane problemy