مساعدة مع قائمة منسدلة

السلام عليكم

يوجد في موقع قائمة dropdown مستخدمة الكود التالي


<!--

jQuery(document).ready(function($) {
    loadtopmenu();
});
$("#boss-menu-category .boss_heading").click(function(){
    $('#boss-menu-category').toggleClass('opencate');
    loadtopmenu();
});
function loadtopmenu(){
    var menuheight = $('#boss-menu-category .box-content').outerHeight();
    var topcate = $('#boss-menu-category').offset().top;
    $('.boss-menu-cate .nav_title').each(function(index, element) {
        var liheight = $(this).outerHeight();
        var subheight = $(this).next('.nav_submenu').outerHeight();
        var topheight = $(this).offset().top - topcate -55;
        /*if((subheight < menuheight)&&(subheight < topheight)){
            var bottomh = topheight - subheight + liheight + 14;
            $(this).next('.nav_submenu').css('top', bottomh + 'px');
        }else{
            $(this).next('.nav_submenu').css('top', '-1px');
        }*/
    });
}   

//-->

أرغب في إضافة كود يجعل القائمة تختفي عند الضغط في أي مكان في الصفحة ضمن الوسم body والذي أعطيته ال id="content"

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

$('#content').click(function() {
    $('.opencate').removeClass('opencate');
});

هل من إقتراحات؟

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

التعليقات

من خلال تحليلي للكود وجدت تعارضا :

  • من خلال حادثة "الكلك" الأولى والثانية تجد انهما يحدثان في نفس الوقت وذلك لأن الظغط على "بوس منيو كاتجري" يعني الظغط ايضا على "كونتنت" لأنها محشورة بداخله اصلا

اليك هذا المقترح :

$("#content").click(function(event) {
    if (event.target.id != "boss-menu-category") {
        $('.opencate').removeClass('opencate');
    }
});

شكرا جزيلا على إهتمامك لكن للاسف الكود لم يعمل

وللأسف ايضا لم تعمل الأكواد بشكل صحيح عند إضافتها إلى

يمكك التفضل بمعاينة نفس القائمة من هذا الرابط

القائمة التي أتحدث عنها هي قائمة "Categories"

hatem87 أضف ردا

قمت بتعديل المقترح :

$(document).click(function(event) {
    if ($(event.target).attr("class") != "box-heading") {
        $('.opencate').removeClass('opencate');
});

للأسف حتى هذا الكود لم يعمل

  • في المقترح الأول كان الكود يقوم بإضافة "opencate" وإزالته في نفس اللحظة

  • أما في المقترح الثاني ف الكود أصبح لا يضيف "opencate" من الأساس

هل البرنامج معك بالسيرفر المحلي ؟ ارسل لي بيانات التيم فيور في الخاص.

حسنا من فضلك أخي الكريم هلا قمت أنت بمراسلتي لأن نقاط السمعة لدي أقل من 50

ارسلت لك

تم اصلاح المشكلة لك أخي العزيز :)

شكرا جزيلا لك أخي الكريم :)

hatem87 أضف ردا

في البداية وقبل ان نتعمق في المسألة اكثر اقترح ان تجري تعديلا بسيطا. حيث لاحظت انك استخدمت "content" بدلا من "#content". في حين تشير انك استخدمته كـ ID لـوسم body. قم بالاستبدال واخبرنا بالنتيجة.

لا أنا استخدمت "#content" في الكود لكن يبدو أنه خطأ فقط في تنسيق الموضوع هنا بالموقع

hatem87 أضف ردا

اذن لو تكرمت قم بوضع كلا من :

  • كود الاتش تي ام ال

  • كود الجافا سكريبت والجي كويري

  • كود السي اس اس

كلً في منطقته المناسبة في هذا الموقع

الذي يتيح تجربة ملفات Client-Side حتى نستطيع ان نشخص لك المشكلة على وجه التحديد. ثم قم باختيار الخيار Save وقم بلصق العنوان هنا.

zezo_mohamed أضف ردا

قمت بتعديل التنسيق سيظهر الكود الآن بشكل أوضح