2015-05-12 2 views
0

У меня есть bootstrap dropdwon, мне нужно его открывать и закрывать только при нажатии 'li.dropdown a' и закрываться, когда я нажимаю на тело. Я делаю это, когда открываю и закрываю только щелчок по значку. но мне нужен код, который заставляет меня закрыть его, когда я нажимаю в теле.close bootstrap drop down JQuery

открываются и закрываются с иконкой (рабочий):

$('li.dropdown a').on('click', function (event) { 
       $('li.dropdown.setting-widget').toggleClass("open"); 
    }); 

**** близко, когда я нажимаю на теле (не работает): ****

if (!$('li.dropdown.setting-widget').hasClass("open")) { 
    $('body').on('click', function (event) { 
       $('li.dropdown.setting-widget').toggleClass("open"); 
    }); 
    } 
+0

Вы пытались изменить toggleClass на «закрытые»? –

+0

@alex, их нет вызова класса close !!! –

ответ

0

Предполагая, что все контекст верен, этот код должен работать.

Ваш оператор if должен находиться внутри метода.

$('body').on('click', function (event) { 
    if ($('li.dropdown.setting-widget').hasClass("open")) { 
     $('li.dropdown.setting-widget').toggleClass("open"); 
    } 
}); 

Если это не сработает, вы должны добавить больше контекста, например, пример HTML, или скрипт JS, показывающий проблему.

+0

его не работает .. контекст настолько сложный –

+0

Я удалил! в выражении if попробуйте это сейчас. Я пропустил это раньше. Я тестировал его на своем загрузочном сайте, изменяя контекст цели, конечно, и это сработало. – JasonBluefire