psy*_*sss 225 html javascript css jquery twitter-bootstrap
假设我创建了一个这样的HTML元素,
<div id="my-div" class="hidden">Hello, TB3</div>
<div id="my-div" class="hide">Hello, TB4</div>
<div id="my-div" class="d-none">Hello, TB4</div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能从jQuery/Javascript中显示和隐藏HTML元素.
JavaScript的:
$(function(){
$("#my-div").show();
});
Run Code Online (Sandbox Code Playgroud)
结果:(与其中任何一个).
我希望隐藏上面的元素.
使用Bootstrap隐藏元素并使用jQuery显示它的最简单方法是什么?
Eva*_*oll 377
Bootstrap 4.x使用新.d-none
类.而不是使用任何一个 .hidden
,或者.hide
如果你使用Bootstrap 4.x使用.d-none
.
<div id="myId" class="d-none">Foobar</div>
Run Code Online (Sandbox Code Playgroud)
$("#myId").removeClass('d-none');
$("#myId").addClass('d-none');
$("#myId").toggleClass('d-none');
(感谢方明的评论)
首先,不要使用.hide
!使用.hidden
.正如其他人所说,.hide
已被弃用,
.hide可用,但它并不总是影响屏幕阅读器,自v3.0.1起不再使用
其次,使用jQuery的.toggleClass() ,.addClass()和.removeClass()
<div id="myId" class="hidden">Foobar</div>
Run Code Online (Sandbox Code Playgroud)
$("#myId").removeClass('hidden');
$("#myId").addClass('hidden');
$("#myId").toggleClass('hidden');
不要使用css类.show
,它有一个非常小的用例.的定义show
,hidden
并invisible
在该文档.
// Classes
.show {
display: block !important;
}
.hidden {
display: none !important;
visibility: hidden !important;
}
.invisible {
visibility: hidden;
}
Run Code Online (Sandbox Code Playgroud)
Raz*_*azz 66
只是:
$(function(){
$("#my-div").removeClass('hide');
});
Run Code Online (Sandbox Code Playgroud)
或者,如果你想以某种方式仍然在那里:
$(function(){
$("#my-div").css('display', 'block !important');
});
Run Code Online (Sandbox Code Playgroud)
Dus*_*ham 16
该hide
班是有用的,以保持隐藏在页面加载内容.
我的解决方案是在初始化期间,切换到jquery的隐藏:
$('.targets').hide().removeClass('hide');
Run Code Online (Sandbox Code Playgroud)
然后show()
,hide()
应该正常运作.
dbr*_*rin 14
解决这个烦恼的另一种方法是创建自己的CSS类,它不会在规则的末尾设置!important,如下所示:
.hideMe {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
并使用如下:
<div id="header-mask" class="hideMe"></div>
Run Code Online (Sandbox Code Playgroud)
现在jQuery隐藏起作用
$('#header-mask').show();
Run Code Online (Sandbox Code Playgroud)
@ dustin-graham的方法概述了我是如何做到的.还要记住,bootstrap 3现在根据getbootstrap的文档使用"隐藏"而不是"隐藏" .所以我会做这样的事情:
$(document).ready(function() {
$('.hide').hide().removeClass('hide');
$('.hidden').hide().removeClass('hidden');
});
Run Code Online (Sandbox Code Playgroud)
然后每当使用jQuery show()
和hide()
方法时,都不会发生冲突.
用这样的方式启动元素:
<div id='foo' style="display: none"></div>
Run Code Online (Sandbox Code Playgroud)
然后,使用您想要显示的事件,如下所示:
$('#foo').show();
Run Code Online (Sandbox Code Playgroud)
我相信最简单的方法.