Question

intro

Bonjour,

Je suis en train de développer certains plug-in ou / et objet en javascript, qui contrôle certaines propriétés sur un objet. Il utilisera également jQuery, pour faciliter le développement.

idée

Ceci est en pseudocode pour vous donner une idée, puisque je ne peux pas vraiment décrire en anglais avec les mots justes, il est impossible d'aller utiliser Google pour savoir ce que je veux utiliser (et apprendre).

I will have plugin (maybe object?) with some variables and methods:

  plugin hideshow(startupconfig){
    var c, //collection
    add: function(what){
      c += what;
    },
    do: function(){
      c.show().hide().stop(); //example code
    }
  }

et je vais l'utiliser de cette façon (ou tri de ):

  var p = new Plugin();

  p
   .add($('p#simple'))
   .add($('p#simple2'))
   .do();

Note

Je ne cherche pas vraiment des tutoriels plugin jQuery - il est plus comme l'utilisation d'un objet dans le document en javascript, jQuery est mentione seulement parce qu'il sera utilisé pour modifier dom et simplifier sélecteurs, plugin jQuery peut-être juste pour cette petite fonction add.

Je cherche quelque chose, qui siégera au-dessus de mes documents et appel à des fonctions itselft en fonction de minuterie ou actions de l'utilisateur, ou autre.

problèmes

  1. Je ne sais pas vraiment où commencer avec construction de cet objet / plugin
  2. Je ne suis pas sûr de savoir comment maintenir une variable, qui est une collection d'objets jQuery (quelque chose comme $('#simple, #simple2');)
  3. Je voudrais peut-être extedn jQuery avec $.fn.addToPlugin d'utiliser des objets Enchaînement, mais cela ne devrait être simple (vraiment juste each( p.add($(this)); ))
  4. Mon plus gros problème est évidemment que je ne peux pas expliquer ce que je veux.

J'espère que de sens, des idées, des liens ou des conseils appréciés.

modifier

Il est quelque chose comme ça, je ne peux pas comprendre comment il est appelé / utilisé en javascript - par exemple dans le pseudo PHP:

class Foo() {
  $collection;
  $timer, $action;

  function onTimer(){
    foreach($collection as $e){
      $e->someAction();
    }
  }

  function add($e){
    $collection[] = $e;
  }

  function start(){
    $timer->start( onTimer() );
  }

  function->stop(){
    $timer->stop();
  }
}

var f = new Foo();

Foo.add(something);
Foo.start();
Était-ce utile?

La solution

Si vous cherchez à écrire un singleton en Javascript, motif de module YAHOO devrait vous montrer tout ce dont vous avez besoin.

Autres conseils

Jetez un oeil à Plugins / Création . Je dirai que votre API proposée est pas vraiment la « voie jQuery ». Le plus probable serait:

$("#simple, #simple2").hideandshow();

Un point de départ serait:

jQuery.fn.hideandshow = function() {
  return this.each(function(){
    $(this).show().hide().stop();
  });
};

et vous êtes essentiellement fait.

Maintenant appeler cette séquence d'événements ne fait pas vraiment de sens non plus, mais c'est une autre question.

l'enchaînement de la méthode est où il obtient un peu plus intéressant et je pense que c'est là le « singleton » vient maintenant dans le cas de jQuery -. Au moins pour les plugins jQuery - état est stocké sur l'objet jQuery lui-même comme en règle générale:

jQuery.effects = [];
jQuery.addeffect = function() {
  for (int i=0; i<arguments.length; i++) {
    if (typeof this[arguments[i]] == "function") {
      this.effects.push(arguments[i]);
    }
  }
};

et accessible par le plug-in:

jQuery.fn.do = function() {
  var effects = this.effects;
  return this.each(function(){
    var ob = $(this);
    for (int i=0; i<effects.length; i++) {
      ob = ob[effects[i]]();
    }
  });
};

qui permet alors:

$.addeffect("hide", "show", "stop");
$("#simple, #simple2").do();

Maintenant cela a une limitation de pouvoir passer des arguments à ces effets. Pas tout à fait sûr de savoir comment contourner cette difficulté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top