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

  • ehowhome

    ehowhome

    22 NİSAN 2009
  • funbro1

    funbro1

    11 Aralık 2007
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008