Ergebnis 1 bis 2 von 2

Thema: Plugin type error not a function

  1. #1
    Benutzer
    Registriert seit
    31.10.2012
    Beiträge
    59

    Plugin type error not a function

    Hallo,
    ich bastele gerade an einem Plugin. Finde aber den Fehler nicht: Es erscheint in der Konsole nur: TypeError: $(...).products is not a function. Hat jemand einen Hinweis, wie ich das zum Laufen bringen kann?

    PHP-Code:



    // Create the defaults once
            
    var products "products",
                
    defaults = {
                    
    product_config: {
            
             
    productkey: {},
             

             
             
    _label: {},
             
    _index: {}, 
             
    _id: {},
             
              
    cut'',
             
    freelength'',
             
             
    product_id0,
             
    total_price'0'
           
    }   
                };

            
    // The actual plugin constructor
            
    function products elementoptions ) {
                
    this.element element;

                
    // jQuery has an extend method which merges the contents of two or
                // more objects, storing the result in the first object. The first object
                // is generally empty as we don't want to alter the default options for
                // future instances of the plugin
                
    this.config = $.extend( {}, defaultsoptions );
                
    this._defaults defaults;
                
    this.init();
            }

            
    // Avoid Plugin.prototype conflicts
            
    $.extendproducts.prototype, {
                
    init: function() {
           
                    
    // Place initialization logic here
                    // You already have access to the DOM element and
                    // the options via the instance, e.g. this.element
                    // and this.settings
                    // you can add more functions like the one below and
                    // call them like the example below
                    
    this.initialize();
                },


            
    initialize: function(){
                   
             
    this.showValues();
      
            }, 
            
          
    showValues: function() {
         
         
    alert('hierdadort');
      }
      

     };   
     
     
    // A really lightweight plugin wrapper around the constructor,
            // preventing against multiple instantiations
            
    $.fnproducts ] = function( options ) {
                return 
    this.each( function() {
                    if ( !$.
    datathisproducts ) ) {
                        $.
    datathisproducts, new productsthisoptions ) );
                    }
                } );
            };  
          
    })( 
    jQuerywindow document ); 
    Aufgerufen wird es so:

    PHP-Code:

     
    $(document).ready(function() { 
                        
                           
                                                                                                                                                                                                                                                  
             
    products = $('.product_1786').products({
             
            
             
    product_config: {
            
             
    productkey: {'0':'AZP/33/175/06/1050'},
             
                      
             
    _label: { 196'Länge' },
             
    _index: {196'laenge6'}, 
             
    _id: { 196196 },
             
                      
             
    _label: { 197'Farbe' },
             
    _index: {197'farbe6'}, 
             
    _id: { 197197 },
             
                      
              
    cut'',
             
    freelength'0',
             
             
    product_id1786,
             
    total_price'11.96'
             
             
    }
             });
               
          }); 
    Es ist eine Abwandlung von Jquery Boilerplate

  2. #2
    Benutzer
    Registriert seit
    31.10.2012
    Beiträge
    59

    So gehts

    PHP-Code:
    // the semi-colon before function invocation is a safety net against concatenated
    // scripts and/or other plugins which may not be closed properly.
    ;( function( $, windowdocumentundefined ) {

        
    "use strict";

            
    // undefined is used here as the undefined global variable in ECMAScript 3 is
            // mutable (ie. it can be changed by someone else). undefined isn't really being
            // passed in so we can ensure the value of it is truly undefined. In ES5, undefined
            // can no longer be modified.

            // window and document are passed through as local variables rather than global
            // as this (slightly) quickens the resolution process and can be more efficiently
            // minified (especially when both are regularly referenced in your plugin).

            // Create the defaults once
            
    var pluginName "productConfig",
                
    defaults = {
                    
    product_config: {
            
             
    productkey: {},
             

             
             
    _label: {},
             
    _index: {}, 
             
    _id: {},
             
              
    cut'',
             
    freelength'',
             
             
    product_id0,
             
    total_price'0'
           
    }   
                };

            
    // The actual plugin constructor
            
    function Plugin elementoptions ) {
                
    this.element element;

                
    // jQuery has an extend method which merges the contents of two or
                // more objects, storing the result in the first object. The first object
                // is generally empty as we don't want to alter the default options for
                // future instances of the plugin
                
    this.settings = $.extend( {}, defaultsoptions );
                
    this._defaults defaults;
                
    this._name pluginName;
                
    this.init();
            }

            
    // Avoid Plugin.prototype conflicts
            
    $.extendPlugin.prototype, {
                
    init: function() {

                    
    // Place initialization logic here
                    // You already have access to the DOM element and
                    // the options via the instance, e.g. this.element
                    // and this.settings
                    // you can add more functions like the one below and
                    // call them like the example below
                    
    this.yourOtherFunction"jQuery Boilerplate" );
                },
                
    yourOtherFunction: function( text ) {

                    
    // some logic
                    
    $( this.element ).texttext );
                }
            } );

            
    // A really lightweight plugin wrapper around the constructor,
            // preventing against multiple instantiations
            
    $.fnpluginName ] = function( options ) {
                return 
    this.each( function() {
                    if ( !$.
    datathis"plugin_" pluginName ) ) {
                        $.
    datathis"plugin_" +
                            
    pluginName, new Pluginthisoptions ) );
                    }
                } );
            };

    } )( 
    jQuerywindowdocument ); 

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •