第一个显示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>
答案 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()
中的显示代码放入您的按钮处理程序中,并让文档处理程序只处理隐藏。