كيف يمكنني استخدام jQuery لإنشاء Div في وضعه على الإطلاق بجوار عنصر آخر؟

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

سؤال

لدي مربع بحث على صفحة مدمن على برنامج Ajax يقوم بإرجاع HTML استنادًا إلى محتويات مربع البحث ، عبر GET.

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

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

يحرر: هنا رابط JSfiddle:http://jsfiddle.net/uxpb8/

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

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

المحلول 3

انتهى بي الأمر القيام بذلك:

//calculate the position
var parentDiv = $(this).parents(selector);
var top = parentDiv.position().top + parentDiv.height();
var left = $("#wrapper").width()-427; //427 is a fixed offset - it's still in the right place for any screen res

//run the search
$.ajax({
    url: 'ajax/find.php',
    data: { search: $(this).val() },
    success: function(data) {
        $("#globalFindResults")
            .css({
                'position': 'absolute',
                'top': top,
                'left': left
                })
            .html(data)
            .slideDown('fast');
    }
});

نصائح أخرى

قل أن مربع البحث الخاص بك في Div يسمى "البحث".

ثم يمكنك استخدام jQuery بعد، بعدما وظيفة لإلحاق HTML الخاص بك:

$('#search').after(html);

إذا لم يكن "Div" الذي تريد إنشائه جزءًا من HTML الذي تم إرجاعه ، فمن السهل جدًا إدخاله:

$('#search').after("<div>" + html + "</div>");

مثل هذا .. (بعد إرجاع HTML)

$('.classNameORID').append("<div style='position:relative;'>"+ data +"</div>");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top