استرجاع Click () معالج في jQuery للاستخدام لاحقًا
-
26-09-2019 - |
سؤال
أنا أستخدم jQuery TableSter Plugin لفرز جدول ، يعين .click () معالجات إلى <th>
S في الجدول. نظرًا لأن طاولتي تحتوي على ألوان متناوبة لكل عمود ، فقد قمت ببناء بسيط fix_table_colors(identifier)
الوظيفة التي يجب أن تفعل عندما أسميها يدويًا باستخدام Firebug. ومع ذلك ، أود أن أستدعي ذلك تلقائيًا بعد نوع ما.
للقيام بذلك ، قررت استرداد معالج .click () من <th>
S ، وتعيين معالج جديد يدعو ببساطة المعالج السابق ، يليه fix_table_colors()
.
(هذه لذا فإن السؤال مشابه ، ولكنه يستخدم سمات OnClick () القياسية ، والتي لن تعمل هنا.)
من الإجابة المقبولة إلى هذا السؤال, ، لقد قمت بإنشاء الكود التالي:
$(document).ready(function() {
$("table.torrents").tablesorter({
debug: true,
headers: {
1: { sorter: 'name' },
2: { sorter: 'peers' },
3: { sorter: 'filesize' },
4: { sorter: 'filesize' },
5: { sorter: 'filesize' },
6: { sorter: 'ratio' }
}
});
$('table.torrents thead th').each(function() {
var th = $(this);
var clickHandler = th.data('events').click[0];
th.click(function() {
clickHandler();
fix_table_colors('table.torrents');
});
});
});
في حين أن هذا صحيح من الناحية المفاهيمية ، clickHandler
لا يبدو أنها في الواقع وظيفة ، ولذا لا يمكنني تسميتها.
مع المزيد من الحفر في Firebug ، وجدت أن Click [3] يبدو أنه يحمل الوظيفة التي أبحث عنها (وانقر فوق [10] بلدي الجديد). أحصل على خطأ "غير محدد" في السطر 2 من tableorTord.min.js عند استخدام ذلك ، على الرغم من.
هل أنا حتى أسير في الطريق الصحيح؟ لدي شعور بأنه مع ما وجدته حتى الآن ، يمكنني أن أجعل هذا العمل ، لكن سيكون أكثر قوعية مما كنت أتوقع أن يكون.
المحلول
ماذا عن الارتباط بـ sortend (http://tablesorter.com/docs/example-triggers.html) حدث مثل ذلك؟
$(document).ready(function() {
$("table.torrents").tablesorter({
debug: true,
headers: {
1: { sorter: 'name' },
2: { sorter: 'peers' },
3: { sorter: 'filesize' },
4: { sorter: 'filesize' },
5: { sorter: 'filesize' },
6: { sorter: 'ratio' }
}
});
$("table.torrents").bind("sortEnd",function() {
fix_table_colors('table.torrents');
});
});