moh*_*sen 6 html javascript jquery
我想显示和隐藏一个div如下:
$('#Div1').click(function () {
if ($("#Div2").hidden) {
$("#Div2").show(500);
}
else {
$("#Div2").hide(1000);
}
});
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用.
我想通过点击页面的空白来隐藏div2我该怎么做以及我的代码在哪里错了?
hidden不是 jQuery 对象的属性。尝试is(':hidden')
$('#Div1').click(function () {
if ($("#Div2").is(':hidden')) {
$("#Div2").show(500);
}
else {
$("#Div2").hide(1000);
}
});
Run Code Online (Sandbox Code Playgroud)
如果时间相同,您可以简单地使用toggle()which doeshide或show基于当前的可见性。
$('#Div1').click(function () {
$("#Div2").stop().toggle(500);
});
Run Code Online (Sandbox Code Playgroud)
并作为@A。Wolff 建议,为了允许多次单击,stop还可以使用来停止任何正在进行的现有动画:
$('#Div1').click(function () {
if ($("#Div2").stop().is(':hidden')) {
$("#Div2").show(500);
}
else {
$("#Div2").hide(1000);
}
});
Run Code Online (Sandbox Code Playgroud)
第2部分:
要在单击页面上其他任何位置时隐藏 div,请监听单击document:
例如
$(document).click(function(){
$("#Div2").stop().hide(1000);
});
Run Code Online (Sandbox Code Playgroud)
不过,为了使其正常工作,您不能允许对 div1 的单击传播到文档,因此将第一部分更改为也用于stopPropagation()第一个事件参数:
$('#Div1').click(function (e) {
e.stopPropagation(); // stop click propagating to document click handler
if ($("#Div2").is(':hidden')) {
$("#Div2").show(500);
}
else {
$("#Div2").hide(1000);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1816 次 |
| 最近记录: |