单击某个按钮然后用关闭按钮隐藏它时显示div的最佳方法是什么?
我的Jquery代码如下:
$(".imageIcon").click(function(){
$('.imageShowWrapper').css("visibility", 'visible');
});
$(".imageShowWrapper").click(function(){
$('.imageShowWrapper').css("visibility", 'hidden');
});
除了我遇到的问题,它会在没有任何点击的情况下自动关闭。它加载一切正常,显示约1/2秒然后关闭。有什么想法吗?
答案 0 :(得分:25)
您可以使用show
和hide
方法:
$(".imageIcon").click(function() {
$('.imageShowWrapper').show();
});
$(".imageShowWrapper").click(function() {
$(this).hide();
});
答案 1 :(得分:5)
根据您的要求,我相信您的需求就像这样简单:http://jsfiddle.net/linmic/6Yadu/
但是,使用可见性与使用显示/隐藏功能不同,血腥细节:What is the difference between visibility:hidden and display:none?
答案 2 :(得分:2)
另一种选择:
$(".imageIcon, .imageShowWrapper").click(function() {
$(".imageShowWrapper").toggle($(this).hasClass('imageIcon'));
});
您还可以使用fadeToggle
和slideToggle
答案 3 :(得分:0)
使用淡入淡出方法可以获得更平滑的过渡:
var imageIcon = $(".imageIcon"),
imageShowWrapper = $(".imageShowWrapper");
imageIcon.on("click", function(){
imageShowWrapper.stop().fadeIn();
});
imageShowWrapper.on("click", function(){
$(this).stop().fadeOut();
});
答案 4 :(得分:0)
$(".imageIcon, .imageShowWrapper").click(function(){
$('.imageShowWrapper').toggle();
});
答案 5 :(得分:0)
很难说,但看不到代码的html和jquery部分。但是,看起来您显示/隐藏div的部分正受到页面重新加载的影响?您可能会将显示/隐藏div的代码放在$(document).ready(function() { .....})
块中。另外,需要注意的另一个相关点是,每当单击诸如按钮,锚点等html元素时,该单击被认为是默认类型=提交,并且页面在这种情况下也会重新加载。要停止这种情况,可以使用event.preventDefault()