2016-05-13 15 views
0

ich einen Code haben, ein Teil davon unten gezeigt, dass ich mehrmals aufrufen, ein Element auf der Seite zu ändern:Convert Code wiederverwendbares Objekt

if ($('.el').length == 0) 
{ 
    $('<div class="el active">Good job!</div>').hide().appendTo('body').fadeIn(); 
} 
else 
{ 
    $('.el').fadeOut(function() 
    { 
     $('.el').html('Good job!').addClass('active').fadeIn(); 
    }); 
} 

Da ich nenne das gleiche Stück mehrmals Code (mit Nachrichten und verschiedene Klassen manchmal variiert), will ich es machen, so dass ich einfach so etwas wie tun:

$('.el').messager({ 
    message: 'Good job!', 
    class: 'active' 
}); 

Wie kann ich umwandeln, was ich habe in dem, was ich brauche?

+0

können Sie bitte einen jsfiddle mit HTML und js part.It wird schaffen fein, auch wenn das nicht funktioniert – brk

Antwort

0

Nachschlagen how to extend jquery. So etwas sollte den Trick tun (ich habe den Code nicht getestet):

$.fn.extend({ 
    messager:function(options){ 
    var self = this; 
    self.fadeOut(function(){ 
     self.html(options.message).addClass(options.class).fadeIn(); 
    }); 
    } 
}); 

nach der oben beschriebenen Methode ruft einmal nach jQuery auf Ihrer Seite geladen wird. Sie können Ihre Methode wie in rufen:

$('.el').messager({ 
    message: 'Good job!', 
    class: 'active' 
}); 
+0

Wie würde ich ohne Angabe ein Element als Eingabe erstrecken, wie '$ .messager()'? –

+0

Ich glaube, ich habe die Frage beantwortet, die Sie nach oben gestellt haben :). Dies ist ein Kandidat für eine separate Frage, wie zum Hinzufügen von Funktionalität zum jQuery oder '$' Namespace. –