在jQuery中的元素外部单击时触发的函数

在jQuery中的元素外部单击时触发的函数,jquery,stoppropagation,Jquery,Stoppropagation,我想在单击body时在循环中显示不同的元素,除了元素#搜索容器表单。它可以工作,但前提是我首先单击元素#search container form,并且只工作一次 $('html').click(function(event) { $('#search-container form').click(function(event){ event.stopPropagation(); }); $('html').on('click',function() {

我想在单击body时在循环中显示不同的元素,除了元素
#搜索容器表单
。它可以工作,但前提是我首先单击元素
#search container form
,并且只工作一次

$('html').click(function(event) {
    $('#search-container form').click(function(event){
        event.stopPropagation();
    });
    $('html').on('click',function() {
        $('#small-search a').toggleClass('notvisible');
        $('#session').toggleClass('notvisible');
        $('#search-container').css('position','absolute');
        $('#search-container form').toggleClass('visible');
    });
});
用于从要将单击事件绑定到的jQuery对象中删除元素:

$('html').not("#search-container form").on('click',function(){
    $('#small-search a').toggleClass('notvisible');
    $('#session').toggleClass('notvisible');
    $('#search-container').css('position','absolute');
    $('#search-container form').toggleClass('visible');
});
来源

not()
在我的代码中不起作用,虽然我没有找到原因,但我已经尝试了该解决方案。。
$('html').not("#search-container form").on('click',function(){
    $('#small-search a').toggleClass('notvisible');
    $('#session').toggleClass('notvisible');
    $('#search-container').css('position','absolute');
    $('#search-container form').toggleClass('visible');
});