JQuery yordamida tanadagi biron bir joyni bosish orqali tomosha qilishni yopish

Possible Duplicate:
Jquery: drop down menu wont disappear after clicking outside of menu

I recently found a tutorial on creating Google like black menu bar with the dropdown

biz "yana" tugmachasini bosgan holda, ochiladigan narsa paydo bo'ladi, biz yana ochiladigan narsani yashirish uchun yana "yana" tugmachasini bosishimiz kerak

lekin tanadagi har qanday joyni bosish orqali ochiladigan oynani yopishni xohlayman, har kim menga qanday qilib xabar berishim mumkin

http://jsfiddle.net/VrmnA/

Oldindan rahmat

2
Bunga javoban bu yerda javob berilgan, hali bu erda jsfiddle.net/FNPY4
qo'shib qo'ydi muallif Praveen Gowda I V, manba
Bu yerga qarang: jquery-drop-down-menu-wont-disappear-then-click-outside-& zwnj; of-menu
qo'shib qo'ydi muallif GregM, manba

3 javoblar

Asosiy mantiq shunga o'xshash bo'lishi kerak: agar menyudan tashqarida biron-bir joyga chertgan bo'lsangiz, ochiladigan so'zni yoping:

var dropdown = $('dropdown_selector');
$(document).click(function(e){
    if(e.target === dropdown.get(0))
        {
           //hide dropdawn code here
        }
});

Mana jonli demo:

http://jsfiddle.net/gion_13/VrmnA/7/

P.S. : Demo so'nggi jQuery versiyasi uchun ishlaydi

3
qo'shib qo'ydi

Agar siz asosiy tarkibni ushlab turuvchi divni id qilsangiz (quyidagi misolda men ushbu divga "kontent" idini qo'shganman), siz u tugmachani bosganingizda u erda faol menyularni yopishingiz mumkin:

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

Shu bilan bir qatorda qo'shilganda faol sinfni olib tashlash uchun blur voqea-ga bog'lang:

  //hiding drop down menu when it is clicked again
  if ($(this).parent().hasClass('active')) {
    $(this).parent().removeClass('active');
  }
  else {
    //displaying the drop down menu
    $('.active').removeClass('active');
    $(this).parent().addClass('active');
    $(this).blur(function() {
        $('.active').removeClass('active');
    });
  }

Yangilangan jsFiddle.

1
qo'shib qo'ydi
@ user1018414 - nima ishlamayapti, faqat jsFiddle havolasini sinab ko'ring va OK ko'rinadi?
qo'shib qo'ydi muallif Andy Rose, manba
uning ishi yo'q
qo'shib qo'ydi muallif user1018414, manba
JsFiddle-ni sinab ko'rdim va tanadagi har qanday joyni bosganimda ochiladigan narsa yopilmaydi
qo'shib qo'ydi muallif user1018414, manba

Ironically, this exact same question was asked recently: Jquery: drop down menu wont disappear after clicking outside of menu

Foydalanuvchiga siz bosishingizdagi html tagiga bosish voqeasini oddiygina ulashingiz mumkinligini tushuntirib berasiz, u ochiladigan tugmani yopib qo'yadi va siz ochqichni darhol o'chirib qo'yishdan qanday qilib to'xtatishingiz mumkin e.stopPropagation() .

0
qo'shib qo'ydi
Xo'sh, savol yopiq va bu safar atrofida turli xil javoblar berildi, kelajakda foydalanuvchilar ham foyda ko'rishlari mumkin.
qo'shib qo'ydi muallif Joey, manba
ha Yo'q, men faqatgina shuni tushundimki, takroriy savolni yo'q qilish to'g'ri amaliyotmi?
qo'shib qo'ydi muallif user1018414, manba