2014-11-20 60 views
0

說我寫的jQuery插件(它是所有使所選元素文本顯示爲紅色),像這樣:如何啓用jQuery插件選擇

jQuery.fn.testPlugin = function(options){ 
    // default plugin settings 
    settings = jQuery.extend({ 
     el: 'p' 

    }, options); 

    $(function() { 

     $(settings.el).css('color', 'red'); 

    }); // end ready 

} // end jQuery.fn.testPlugin 

然後,說我有一個<p>,我想紅色,我會叫我的插件像這樣:

$().testPlugin('p'); 

什麼我不知道,並希望知道的是,我怎麼可能讓$()內選擇工作,讓我可以做以下,並得到同樣的效果,沒有el裏面的設置。

$('p').testPlugin(); 

回答

0

通常this將返回到當前選擇:

jQuery.fn.testPlugin = function(options){ 
    return this.each(function(){ 
    //having code here assigns like you wanted : $('p').testPlugin(); 
    $(this).css('color', 'red'); 
    }); 
}; 

現在,你可以應用此:

$('p').testPlugin(); 

但是,因爲如果你想有兩種方式:

只需使用採用以下方式:

jQuery.fn.testPlugin = function(options){ 
    // code you're having and below code: 
    if(settings.el == undefined){ 
     return this.each(function(){ 
      //rest of my above code 
     }); 
    } 
} // end jQuery.fn.testPlugin