سؤال

لدي الرمز التالي الذي يستخدم ببساطة مربع حوار JQuery UI Modal "لتأكيد" أي نقرة على رابط. إذا انقروا على موافق ، فإنه يرسلهم إلى الرابط الأصلي. إنه يعمل بشكل جيد ، لذلك لا تهتم بقراءته في الكثير من التفاصيل =)

    $('.confirm').live('click', function(e) {
  e.preventDefault();
  var theHref = $(this).attr('href');
  var confirmText = 'Are you sure?';
  if ($(this).attr('confirm')) {
   confirmText = $(this).attr('confirm');
  }
  confirmDialog.html(confirmText);
  confirmDialog.dialog({
   buttons: {
    'OK': function() {
     window.location = theHref;
     $(this).dialog('close');
    },
    Cancel: function() {
     $(this).dialog('close');
     return false;
    }
   }
  });
  confirmDialog.dialog('open');
  return false;
 });

ثم ، لدي مجموعة من الوظائف التعسفية الأخرى. مثل ، قل هذا:

    $('a.reset').live('click', function(e) {
  e.preventDefault();
  $(this).parents('form')[0].reset();
 });

هذا مجرد رابط يعيد تعيين نموذج (مثل نوع الإدخال = إعادة تعيين). هذه الوظيفة تعمل أيضًا بشكل جيد. يرجى ملاحظة أن هذا مجرد مثال تعسفي. لدي الكثير من المقتطفات المختلفة من وظائف JS التي أرفقها عبر الفصول.

المشكلة التي أواجهها هي تكديس هذين. في هذا المثال ، بعض روابط إعادة التعيين التي قد أرغب في تأكيدات ، بعضها قد لا. مثل ذلك:

<a href="" class="reset confirm">Reset on confirmation</a>
<a href="" class="reset">Reset without confirmation</a>

المشكلة بالطبع ، هي أن المثال الأول لا يهتم بالتأكيد - إنه يمضي قدماً وإعادة ضبطه. هل هناك طريقة يمكن أن أستمر في الحفاظ على هذه الأجزاء من الكود منفصلة ومعيار (كما في مثال HTML) ، بينما في نفس الوقت جعل المرء يعتمد على إخراج الآخر؟

آمل أن يكون من الواضح ما أحاول تحقيقه.

شكرا مقدما لأي مساعدة. أول مرة نشر هنا لذا كن لطيفًا =)

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

المحلول

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

نصائح أخرى

حسنًا ، هناك نهج بسيط للغاية ، سيخمن ما فهمته أنك تريد تحقيقه هو التحقق مما إذا كان العنصر لديه فئة التأكيد متصلة به قبل منع أي سلوك افتراضي وما لا

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

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