[英]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.