مساعدة مع استدعاء أسلوب داخلي من البرنامج المساعد مسج [مغلقة]

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

سؤال

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

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

وكما ترون، لدي معالج أحداث على الزر الذي يتم إدراجها. لقد مشفرة إزالة الشريط، ولكن أود أيضا إلى إزالة التمييز من الشروط. البرنامج المساعد لديه طريقة للقيام بذلك دعا toggleTermHighlighting().

وكيف يمكن أن أسميه هذا الأسلوب من داخل وظيفة المجهول على صفحة مثلا؟ هل أنا بحاجة لجعله this.toggleTermHighlighting = function() {}. لقد حاولت تمرير في مثيل هذا الوسيطة الأولى، لكنه لم يستطع الحصول على عمل.

عذرا، يبدو لي دائما أن يكون وقتا صعبا مع وجود مجال في جافا سكريبت.

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

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

المحلول

واعتقد انه اذا كنت هيكلة الطريقة التي تم تعريف وظيفة داخل البرنامج المساعد، وسوف تصبح أسهل قليلا جدا.

وتغيير خط 128 من:

var toggleTermHighlighting = function() {

إلى:

this.toggleTermHighlighting = function() {

وبعد ذلك يمكنك أن تفعل شيئا من هذا القبيل للوصول إلى وظيفة من نطاق مختلف تماما:

var myPlug = new $.fn.searchTermsHighlight();
myPlug.toggleTermHighlighting();

وهذا من شأنه أن يكون الجواب على سؤالك، ولكن أعتقد نهجا مختلفا قد تكون أكثر ملاءمة. اذا نظرتم الى الكثير من رمز مسج UI، يمكنك تمرير سلسلة إلى البرنامج المساعد وأنه سيتم تنفيذ وظيفة لك. لذلك يمكن أن الواقع لا مجرد شيء من هذا القبيل:

$('body').searchTermsHighlight('toggle');

وبعد ذلك فقط التحقق منه في الجزء العلوي من وظيفة الخاص بك، أو في الحرف الأول () اكتب الدالة

if (options === 'toggle'){ toggleTermHighlighting(); return this; }

نصائح أخرى

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

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