سؤال

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

وسوف ظائف الثاني والثالث أدناه لا تعمل:

<script>
$(function() {
    $("#ent_input").autocomplete('get_suggestions', 
        {autoFill: true, scroll: false});
});

    // Freebase Suggest
$(function() {
    $("#ent_input_fb").suggest({type:'/film/director'});
});

$(function() {
    $("#ent_input_fb2").suggest({type:'/film/actor'});
});
</script>

ولكن، إذا انتقلت الإكمال التلقائي إلى أسفل، يعمل السيناريو الآخر، ولكن الإكمال التلقائي لا.

<script>
    // Freebase Suggest
$(function() {
    $("#ent_input_fb").suggest({type:'/film/director'});
});

$(function() {
    $("#ent_input_fb2").suggest({type:'/film/actor'});
});

    $(function() {
    $("#ent_input").autocomplete('get_suggestions', 
        {autoFill: true, scroll: false});
});
</script>

وقد أي شخص يعمل في أي قضايا مماثلة مع مسج الإكمال التلقائي ؟

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

المحلول

ومسج يجب تنفيذ كافة معالجات $(function()...) الخاص بالترتيب الذي تم الإعلان من دون قضية. يبدو مكالماتك إلى autocomplete وsuggest هم الجناة.

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

ويتميز

وافترض someElement على النحو التالي:

<span id="someElement" onclick="alert('Me First!');" />

... وجافا سكريبت

$("#someElement").click
(
  function()
  {
    alert("1");
  }
);

$("#someElement").click
(
  function()
  {
    alert("2");
  }
);

وسترى ثلاثة صناديق تنبيه تظهر في الترتيب التالي: "أنا أولا!"، "1"، و "2"

ومسج يذهب الميل الإضافي للاحتفاظ المرمز معالجات عند_النقر كما الوظيفة الأولى للنقر عند وقوع الحدث. وهذا يجعل من آمنة جدا لاستخدام هذه المكتبة مع التكنولوجيا من جانب الخادم مثل ASP.NET، الذي يرش معالجات عند_النقر في كل مكان.

لإزالة كافة معالجات الحدث انقر فوق تعيين مسج-من عنصر، قم بما يلي:

$("#someElement").unbind("click");

ونضع في اعتبارنا أن هذا لا يزيل بنقرة ومعالج تعيين بطريقة أخرى (أي سمة عند _ النقر في الترميز).

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