2016-07-29 14 views
0

Können Sie bitte einen Blick auf dieses Beispiel nehmen und lassen Sie mich wissen, warum es nichtAusgabe auf Aufrufen einer benutzerdefinierten Methode Targeting DOM

function changeColor(item){ 
 
    var item = $(this); 
 
    item.css("color", "green"); 
 
} 
 

 
$(".changer").on("click", function(){ 
 
    $('p').changeColor(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p >Name</p> 
 
<button class="btn btn-default changer" type="submit">Changer</button>'
arbeitet

+1

'.changeColor' s nicht eine jQuery-Methode – guest271314

Antwort

2

Sie müssen changeColor als jQuery definieren Plugin nicht so einfache Funktion.

$.fn.changeColor=function(){ 

     this.css("color", "green"); 
} 

Dann keine Notwendigkeit mehr für item Argument, da Sie Element in jQuery über this Ziel zugreifen können;

__

DEMO:

+0

FYI:' this' schon wird ein jQuery-Objekt sein, gibt es keine Notwendigkeit, es zu wickeln –

1

Sie rufen die Funktion changeColor, als ob es ein jQuery-Plugin, aber es ist nur ein einfaches Javascript funciton.

$.fn.changeColor = function changeColor(){ 
    var item = $(this); 
    item.css("color", "green"); 
} 

$(".changer").on("click", function(){ 
    $('p').changeColor(); 
}); 

Siehe Demo https://jsbin.com/cisujixiru/edit?js,output

+0

Sie wiederholen gleiche Antwort von @Abdennour,. Um Abstimmungen zu vermeiden, löschen Sie Ihre Antwort oder geben Sie eine andere Lösung –

Verwandte Themen