我需要这两个功能的帮助

时间:2011-03-17 13:14:05

标签: javascript jquery

第一个显示div,第二个显示单击文档中任何其他位置的潜水。我遇到的问题是,当我点击按钮显示div时,它也算作文档点击,因此它隐藏了div。当我点击显示div

时,我怎么能不隐藏div
<script type="text/javascript">
    function test22(){  

        var links = document.getElementById('links_safari');
        if(links.style.display == "none"){

            document.getElementById('links_safari').style.display="";
            var content = $('#links_safari').html();             
            var words = content.split(',');             
            for (var i = 2; i < words.length; i += 3) { 
                words[i] += '<br>'; 
            }
            content = words.join(' ');  
            $('#links_safari').html(content); 

            $('#links_safari').css("margin-top", -322);
            $('#links_safari').css("margin-left", 180);
            safariPopupStatus++;
        }
        else{
            links.style.display="none";

        }
    }



</script>

<script type="text/javascript">
    $(function (){

        $(document).click(

            function (e){
                var links = document.getElementById('links_safari');

                links.style.display="none";
                }  
        )
    })
</script>

4 个答案:

答案 0 :(得分:2)

假设您的按钮的ID为showBtn,现在代码为

$(document).click(

            function (e){
                if($(e.target).attr('id')=='showBtn') return

                var links = document.getElementById('links_safari');
                if(links.style.display != "none") // why not check here ?
                  links.style.display="none";

                }  
        )

答案 1 :(得分:0)

点击“点击”功能进行简单检查:

<script type="text/javascript">
    $(function (){

        $(document).click(

            function (e){
                var links = document.getElementById('links_safari');
                if(links.style.display != "none") // why not check here ?
                  links.style.display="none";
                else
                   links.style.display="";

                }  
        )
    })
</script>

答案 2 :(得分:0)

您必须停止点击事件传播。 查看http://api.jquery.com/event.stopPropagation/

答案 3 :(得分:0)

为您的按钮创建单独的点击处理程序。它应该看起来像:

$("#buttonID").click(function(e) {
    test22(); // to show
    e.stopPropegation();
});

stopPropegation将阻止事件冒泡到文档级别,从而阻止在那里调用处理程序。

您可以并且也可能将test22()中的显示代码放入您的按钮处理程序中,并让文档处理程序只处理隐藏。