كيف يمكنني الحصول على حدث النقر لأكورديون أياكس؟asp.net

StackOverflow https://stackoverflow.com/questions/1809587

  •  05-07-2019
  •  | 
  •  

سؤال

لدي أكورديون أياكس، ويحتوي كل جزء على لوحة تحديث (يتم إنشاؤها ديناميكيًا).أريد تحديث لوحات التحديث عند النقر فوق رأس الجزء، ولكن لا يوجد حدث نقر.

يمكنني فتح زر في الرأس وتسجيله كمشغل غير متزامن باستخدام مدير البرامج النصية، لكنني لا أريد زرًا، أريد أن يكون الرأس بأكمله مشغلًا.

لا أستطيع رؤية طريقة لتعيين div أو تسمية كمشغل حيث لا يوجد حدث نقر من جانب الخادم.هل هناك طريقة أخرى يمكنني القيام بها؟

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

المحلول

استخدم مسج.

سيكون بناء الجملة سهلا كما يلي:

$('#myHeading').click(function(){
    // Your code here
});

في بعض الأحيان مع ASP.NET، اضطررت إلى استخدام مطابقة معرف أحرف البدل لأن ASP.NET يقوم بإنشاء معرفات طويلة جدًا وشبه عشوائية من جانب العميل لعناصرك.ستفعل شيئًا مثل ما يلي:

$('[id*="myHeading"]').click(function(){
    // Your code here
});

يمكنك بشكل أساسي تحديد أي شيء في DOM وإرفاق معالج الأحداث به باستخدام jQuery.في بعض الأحيان عليك أن تكون مبدعًا مع المحددات.

مهم:إذا كنت تستخدم لوحات التحديث وكان العنوان الذي تريد مراقبته للنقرة موجودًا داخل تلك اللوحة، فستحتاج إلى إعادة ربط معالجات الأحداث هذه بالعنصر الذي تحدده بعد تحميل/إعادة تحميل اللوحة عبر ajax.ويمكن تحقيق ذلك باستخدام الكود التالي:

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_pageLoaded(panelLoaded);

function panelLoaded(sender, args){

    $('[id*="myHeading"]').click(function(){
        // Do something after there is a click
    });

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