2009-05-13 6 views
1

Est-ce que quelqu'un sait comment créer un plugin jQuery qui réagira à l'appel de la méthode val()?Plugin jQuery acceptant et renvoyant une valeur en utilisant la méthode val()

Voici le scénario:.

  1. Prenez un ensemble de DIVs l'aide du sélecteur jQuery et appliquer un plug-in sur eux (disons que le plug-in est appelé « mytest »
  2. En utilisant la méthode val() sur la même ensemble de DIVs Je voudrais les définir certaines propriétés.

Quelle est la bonne façon de faire ce genre de choses?

$.fn.example = function(options) { 
    return this.each(function() { 
     var edits = $("<input type='text'/><input type='text' />"); 
     $(this).html(edits); 
    }); 
} 

$(document).ready(function() { 
    $("#example").example(); 
    $("#example").val("value1 value2"); 
    window.alert($("#example").val()); 
}); 

Dans ce cas, la première édition doit avoir la valeur "value1" et la seconde éditer la valeur "value2". Et v.v. en appelant la méthode "val()", je voudrais récupérer la chaîne "value1 value2".

Cordialement, Matthias

+0

Vous voulez dire si vous le faites $ mytest (» mydivs.).() .val ('...'); vous voulez que la méthode val de ces divs soit remplacée par autre chose? –

+0

oui. la vérité est que la div est grandement étendue avec certains contrôles et la méthode val() devrait renvoyer une chaîne représentant la valeur réelle de ces contrôles. Ce serait génial si cela pouvait fonctionner dans les deux sens (get/set). –

+0

Je voudrais vous aider mais vous devez ajouter plus de détails à votre question. Donnez un exemple du comportement attendu. –

Répondre

0

J'ai réalisé qu'en utilisant d'autres méthodes, puis les appeler à l'aide

$("...").pluginname("methodname", ..parameters..); 
syntaxe

. Cela fonctionne exactement comme les autres plugins, donc je suppose que c'est la bonne façon de procéder. Dans le cas de l'exemple ci-dessus le code ressemblerait à ceci:

$.widget("ui.example", { 
    _init: function() { 
    } 
}); 

$.extend($.ui.example, { 
    version: "1.7.1", 
    defaults: { 
     value: "" 
    } 
}); 

Et l'utilisation serait:

$("#example").example("option", "value", "value1 value2"); 
var value = $("#example").example("option", "value"); 
window.alert(value); 
Questions connexes