سؤال

ما هي أفضل طريقة الممارسات من تحديد عنصر ديناميكيا على الصفحة؟

واسمحوا لي أن أشرح. لدي قائمة من العناصر، يمكن أن يكون هناك عدد قليل كما أو العديد من العناصر وفقا لتعريف المستخدم، على صفحة. كل واحدة من هذه يتوافق مع عنصر كل مع انها الهوية الخاصة. الآن، المستخدم لديه القدرة على تعديل أو حذف هذه العناصر في الصفحة ويتم التعامل مع هذه العمليات مع مسج. كل عنصر ويأتي مع وصلة في العملية التي يمكن العمل (أي حذف وتحرير).

والآن مشكلة هي معرفة <م> التي العنصر اختارت المستخدم. للتعامل مع هذا أعطي كل وصلة معرف العنصر كسمة ID، وهو ما ثم الحصول باستخدام مسج:

 <a href="#" class="delete" id="<%= Model.elementID%>">Delete</a>

  $(".delete").live("click", function(event) {
      event.preventDefault();
      var elementID =  $(this).attr("id");
      //other code
   });

ومن الواضح أن هذا أبعد ما يكون عن المثل الأعلى لأنه يعني الكثير من العناصر DOM يمكن أن يكون نفس الرقم. بدلا من ذلك يمكنني أن إنشاء سمة بلدي مثل elementID ولكن أعتقد أن هذا يكسر المعايير.

وماذا في ذلك هل يمكن أن يوصي. كيف يمكنني تحديد العناصر المولدة ديناميكيا على صفحة؟

هل كانت مفيدة؟

المحلول

ولقد فعلت هذا لا بأس به لمواقع بلدي وبلدي الحل هو مزيج من حيث بدا لكم من وبعض التعليقات:

استخدم اصطلاح التسمية، مثل "ELEMENT_TYPE: معرف: العمل". هكذا ولدت المثال الخاص بك يكون "العنصر: 23: حذف". ثم يمكنك تقسيم () و.attr ( "ID") الذي يخطف وتحديد ما هو عليه ( "تقرير" مقابل "مجلد")، والهوية، وماذا تريد أن تفعل ( "حذف"، "تحرير "،" التحرك ").

لقد عملت هذا بشكل جيد للغاية بالنسبة لي، وغير قابلة للغاية.

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

وجيمس

نصائح أخرى

لماذا لا مجرد إضافة فئة بدلا من ذلك. هذا لا يحل أيضا مسألة وجود العديد من الهوية التي استعصت على النحو الذي للا يسمح، وسوف يسبب مشاكل كبيرة مع عمليات مسج لاحقة.

<a href="#" class="delete" id="<%= Model.elementID%>">Delete</a>

  $(".delete").live("click", function(event) {
      event.preventDefault();
      //other code
      $(yourNewElement).addClass('noob');

   });

وشيء آخر يمكن القيام به هو هذا:

<a href="#<%= Model.elementID%>" class="delete"> Delete </a>
$(".delete").live("click", function(event) {
    event.preventDefault();
    var elementID =  $(this).attr("href");
    // strip the preceding '#'

    // rest of your code
});

وPS: كل شيء لايوجد أفضل الممارسات. بعض الأشياء فقط تحتاج إلى appoach الجديد.

وابتهاج، JRH

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