ربط على إضافة عناصر DOM الجديدة مع JQuery (أو JS عادي)

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

سؤال

أن تكون واضحا: أنا لا أطلب كيفية وضع السنانير الموجودة على عناصر دوم جديدة. أعرف عن وظيفة Live () والمكون الإضافي القديم Livequery. أنا أسأل شيئا آخر.

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

باستخدام $ ('...') .بلدين ('ajaxsuccess'، وظيفة () .....) يعمل لبعض الإضافات، ولكن ليس كل منهم.

لا يوجد حل صحيح

نصائح أخرى

إذا تم إضافتها دائما مع المستند. أسلوب الإبداع، فيمكنك ببساطة استبدالها والقيام بتتبعك هناك.

document.replacedCreateElement = document.createElement;
document.createElement = function(tagName) {
    this.replacedCreateElement(tagName);
    //do your tracking  
}

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

وظيفة Live () التي تم دمجها في جيس ليس في الواقع تطبيق LORKQUERY الكامل. (تعتقد أن تعتقد أنه كان هناك الكثير من الوظائف المدمجة دون تهب حجم التعليمات البرمجية حتى الآن)

في Live ()، ما هو مفقود هو وظيفة النوع التالية:

$('*').livequery(function() {
 // do something
});

استخدم هذا، وينبغي أن يمسك أي إضافات.

حسنا، ذهبت مع هذا الزوج، والذي يبدو أنه ينطلق على تحديثات DOM المرغوبة في غضون 20 ثانية أو أقل:

$( '#someid' ).bind( 'ajaxSuccess', function() { ... } );
$( '#someid' ).ajaxSuccess( function( e, r, s ) { ... } );

أفضل أن لا تضطر إلى إبطاء تحميل الصفحة بالاعتماد على LiveQuery، وسحق محلول ReplingedCreateCreation CPU.

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