SORU
12 Temmuz 2009, Pazar


Nasıl yöntemler ile bir jQuery eklentisi oluşturmak için?

Onu çağıran nesne için ek işlevleri/yöntemleri sağlayacak bir jQuery plugin yazmaya çalışıyorum. Online (son 2 saat için tarama olmuştur) okuduğum Tüm Dersler seçenekleri, ama ek işlevler eklemek için nasıl, en fazla vardır.

Ne arıyorum:

//format bu div için eklenti çağırarak mesaj konteynerine div

$("#mydiv").messagePlugin();
$("#mydiv").messagePlugin().saySomething("hello");

ve bu doğrultuda bir şey. Eklenti diyorum, sonra bir fonksiyon bu eklenti ile ilişkili diyorum. burada mesele bu: Bunu yapmak için bir yol bulmak için görünmüyor olabilir, ve birçok eklentileri bunu daha önce de görmüştüm.

Şimdiye kadar eklenti var:

jQuery.fn.messagePlugin = function() {
  return this.each(function(){
    alert(this);
  });

  //i tried to do this, but it does not seem to work
  jQuery.fn.messagePlugin.saySomething = function(message){
    $(this).html(message);
  }
};

Böyle bir şeyi nasıl elde edebilirim?

Teşekkür ederim!


Nov 18, 2013 güncelleme: Hari aşağıdaki yorum upvotes ve o doğru cevabı değiştirdim.

CEVAP
29 Temmuz 2011, Cuma


JQuery göre Yazma sayfası (http://docs.jquery.com/Plugins/Authoring) en iyi Eklenti jQuery ve jQuery çamurlu değil.fn ad. Bu yöntem önerdiler

(function( $ ){

    var methods = {
        init : function(options) {

        },
        show : function( ) {    },// IS
        hide : function( ) {  },// GOOD
        update : function( content ) {  }// !!!
    };

    $.fn.tooltip = function(methodOrOptions) {
        if ( methods[methodOrOptions] ) {
            return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
            // Default to "init"
            return methods.init.apply( this, arguments );
        } else {
            $.error( 'Method '    methodOrOptions   ' does not exist on jQuery.tooltip' );
        }    
    };


})( jQuery );

Temelde mağaza fonksiyonları bir dizi (kapsamlı için kaydırma fonksiyonu) ve kontrol için bir giriş eğer parametre geçirilen bir dize, dönüştürme için bir varsayılan yöntem ("ınit" burada) eğer parametre bir nesne (veya boş).

O halde yöntemleri böyle diyebilirsin...

$('div').tooltip(); // calls the init method
$('div').tooltip({  // calls the init method
  foo : 'bar'
});
$('div').tooltip('hide'); // calls the hide method
$('div').tooltip('update', 'This is the new tooltip content!'); // calls the update method

"Değişken tüm bağımsız değişkenler, fonksiyon parametreleri. rastgele uzunlukları ile çalışır, bu yüzden geçti dizisi "değişkenleri JavaScript

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DancingIsAPassion

    DancingIsAPa

    29 AĞUSTOS 2009
  • GoldgenieOfficial

    GoldgenieOff

    23 Temmuz 2009
  • Le Cargo !

    Le Cargo !

    24 HAZİRAN 2007