繁体   English   中英

我需要这两个功能的帮助

[英]I need help with these two functions

第一个显示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>

假设您的按钮的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";

                }  
        )

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

<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>

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM