سؤال

مقدمة

أهلا،

أحاول تطوير بعض المساعد أو/و كائن في JavaScript، والتي ستتحكم في بعض الخصائص على بعض الكائنات. سيستخدم أيضا jquery، لتخفيف التطور.

فكرة

هذا في pseudocode لتعطيك فكرة، لأنني لا يصفه حقا باللغة الإنجليزية بالكلمات الصحيحة، من المستحيل الذهاب واستخدام Google لمعرفة ما أريد استخدامه (والتعلم).

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
    }
  }

وسأستعبه بهذه الطريقة (أو نوعا ما):

  var p = new Plugin();

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

ملاحظة

أنا لا أبحث حقا عن البرامج التعليمية المسافة المستقية - إنه مثل استخدام كائن واحد في المستند في JavaScript، وذكر jQuery فقط لأنه سيتم استخدامه لتعديل DOM وتبسيط المحددات، ويمكن المساعد JQuery Plugin فقط لهذا الوظيفة الصغيرة add.

أبحث عن شيء ما، من شأنه أن يجلس على رأس وثيقتي واستدعاء المهام من طوب نفسه على أساس الموقت أو إجراءات المستخدم أو أيا كان.

مشاكل

  1. أنا لا أعرف حقا من أين أبدأ اعمال بناء من هذا الكائن / البرنامج المساعد
  2. لست متأكدا من كيفية الحفاظ على متغير واحد، وهي مجموعة من كائنات مسج (شيء مثل $('#simple, #simple2');)
  3. أود أن أحب extedn jquery مع $.fn.addToPlugin لاستخدام سلامة الكائنات، ولكن يجب أن تكون بسيطة (حقا فقط each( p.add($(this)); ))
  4. من الواضح أن المشكلة الأكبر من الواضح أنني لا أستطيع شرح ما أريد.

آمل أن أقدم أي معنى أو أفكار أو روابط أو نصائح في تقديرها.

تعديل

إنه شيء من هذا القبيل، لا يمكنني معرفة كيفية تسميته / المستخدمة في JavaScript - مثال في 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();
هل كانت مفيدة؟

المحلول

إذا كنت تتطلع إلى كتابة singleton في جافا سكريبت، نمط يواهو نمط يجب أن تظهر لك كل ما تحتاجه.

نصائح أخرى

إلقاء نظرة على الإضافات / التأليف. وبعد سأقول أن واجهة برمجة التطبيقات المقترحة الخاصة بك ليست في الحقيقة "طريقة jQuery". سيكون أكثر عرضة:

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

ستكون نقطة انطلاق:

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

وأنت القيام به أساسا.

الآن نداء هذا التسلسل من الأحداث لا معنى له حقا سوى هذه مشكلة أخرى.

الآن طريقة التسلسل هي المكان الذي يجعله أكثر إثارة للاهتمام قليلا وأعتقد أن هذا هو المكان الذي يأتي فيه "Singleton". الآن في حالة JQuery - على الأقل للحصول على إضافات JQuery - يتم تخزين الحالة على كائن JQuery نفسه كقاعدة عامة في

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

والوصول إليها بواسطة البرنامج المساعد:

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]]();
    }
  });
};

الذي يسمح بعد ذلك:

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

الآن هذا لديه قيود على القدرة على اجتياز الحجج لتلك الآثار. ليس متأكدا تماما من كيفية التجول في ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top