Hallo,

ich schreibe an einem jQuery Plugin, das mir eine Liste von formell identischen Eingabefeldern verwaltet und möchte darin bestimmte Variablen und Funktionen über alle Methoden sharen. Dabei gibt es jetzt Fehler. Es fängt damit an, dass inputlist_add() in der add_row mehode nicht gefunden wird. Wenn ich die Funtion aber außerhalb der Methoden (aber innerhalb des Plugins natürlich) definiere, gibt es viele Folgefehler, die auch dann nicht auf hören, wenn ich auch die Variablen aus der Init methode dorthin auslagere.

// lists of input elements plugin // ------------------------------ (function( $ ){ var methods = { init : function( options ) { // define options w/ defaults var defaults = { 'add_text': 'add', 'gen_content': function() {} }; var options = $.extend(defaults, options); // store this var list_div = this; // init list with addbutton var addbtn = $('<input type="button" value="'+options.add_text+'" >'); addbtn.click(function () { inputlist_add($(this)); }); this.after(addbtn); function inputlist_add() { var content = options.gen_content(); var rembtn = $('<input type="button" value="remove" >'); rembtn.click(function () { $(this).parent().remove(); }); list_div.append(content); content.wrap($('')); content.after(rembtn); } }, add_row : function() { inputlist_add(); } }; $.fn.inputlist = function( method ) { // Method calling logic if ( methods[method] ) { return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments ); } else { $.error( 'Method ' + method + ' does not exist on jQuery.tooltip' ); } }; })( jQuery ); $(document).ready(function() { var test = $('#release_features').inputlist({ // an das div #release_features anfügen 'add_text' : 'add feature', 'gen_content' : function() { return $('<input type="text" value="defaulttext" >'); } }); $('#release_features').inputlist('add_row'); });