jQuery plugin omfanget av innstillinger vedtatt i

stemmer
1

Jeg føler at dette må ha blitt spurt, men jeg klarer ikke å finne det gjennom mine søk.

Her er en komplett eksempel på problemet som er forvirrende meg:

<html><head>
<script type=text/javascript src=https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js></script>
<script type=text/javascript>
(function($){
    $.fn.testPlugin = function(options){
    settings = $.extend({val : default}, options);
    return this.each(function(){
        $(this).click(function(e){ 
        e.preventDefault();
        console.log(settings.val);
        });
    });
    }
 })(jQuery);

$(document).ready(function(){
    $('a#a1').testPlugin();
    $('a#a2').testPlugin({val : 'new val'});

});
</script>
</head><body>
<a href=# id=a1>A1</a>
<a href=# id=a2>A2</a>
</body>
</html>

Ved å klikke på hver kobling logger nye val til Firebug konsollen. Du kan sikkert forestille deg at jeg vil at den første linken til beholde standardinnstillingene, og den andre for å ha mine overskrevne innstillinger. Det må være en standardmønster for å oppnå dette for en plugin?

Publisert på 04/10/2009 klokken 23:02
kilden bruker
På andre språk...                            


1 svar

stemmer
5

Jeg tror du trenger å bruke varfor å holde settingsvariabel i omfang. Prøve:

 $.fn.testPlugin = function(options){
        var settings = $.extend({val : "default"}, options);
        return this.each(function(){
            $(this).click(function(e){ 
                e.preventDefault();
                console.log(settings.val);
            });
        });
    }
Svarte 04/10/2009 kl. 23:06
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more