سؤال

لقد حصلت على أداة الإكمال التلقائي الجديدة في jQuery UI 1.8rc3 والتي تعمل بشكل رائع في Firefox.لا يعمل على الإطلاق في IE.يمكن للشخص مساعدتي؟

لغة البرمجة:

<input type="text" id="ctrSearch" size="30">
<input type="hidden" id="ctrId">

جافا سكريبت:

$("#ctrSearch").autocomplete({
    source: "ctrSearch.do",
    minLength: 3,
    focus: function(event, ui){
        $('#ctrSearch').val(ui.item.ctrLastName + ", " + ui.item.ctrFirstName);
        return false;
    },
    select: function(event, ui){
        $('#ctrId').val(ui.item.ctrId);
        return false;
    }
});

النتيجة (IE 8):

المربع الأحمر هو <ul> العنصر الذي تم إنشاؤه بواسطة jQuery.

أحصل أيضًا على هذا الخطأ:

Line: 116
Error: Invalid argument.

عندما أقوم بفتحه في مصحح أخطاء البرنامج النصي IE8، فإنه يبرز f[b]=d على السطر 116 من jquery.min.js.لاحظ أنني أستخدم الإصدار 1.4.2 من jQuery المستضاف على خوادم Google (https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js).

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

مرة أخرى، يعمل هذا الخيار في Firefox، ولكن ليس في IE.أي اقتراحات؟

شكرًا.

تحديث: كما هو مقترح، استخدمت jquery.js (بدلاً من jquery.min.js) وحصلت على الخطأ في السطر 4618.انظر إجابة غضب أدناه.لطفا أنظر هذا السؤال الآخر لـ Stack Overflow الذي تم نشره قبل بضعة أيام.

التحديث 2: لقد اكتشفت أن الإكمال التلقائي لـ jQuery UI يستخدم خاصية غير صالحة this.element.height, ، عندما يجب أن تستخدم الوظيفة this.element.height()

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

المحلول

إذا فهمت هذا بشكل صحيح، يبدو أن السطر الذي تشير إليه هو السطر 4618 jquery.1.4.2.js في ال style وظيفة.وهذا قد يعني فقط أن مكون الإكمال التلقائي الإضافي يحاول تعيين قيمة نمط لا يفهمها IE8 أو لا يسمح بالوصول إليها/تغييرها بهذه الطريقة.

style[ name ] = value; //style == elem.style from the passed in element

نصائح أخرى

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

$(this).css('background', 'rgba(64,255,64,.4)');

ما الذي يحاول jQuery القيام به ...

style [ 'background' ] = 'rgba(64,255,64,.4)';

وهي تفشل بالطبع، لأن rgba ليست قيمة CSS مدعومة لبرنامج Internet Explorer.إذن أنت لست وحدك في هذا الأمر، ولكن في حالتي كنت أفعل ذلك بشكل خاطئ.بناء جملة jQuery المناسب هو هذا ...

$(this).css({backgroundColor: '#40ff40', opacity: .4});

هنا مصدري...

http://www.cjs.me.uk/blog/?p=238

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