[英]if($(var).css('display') == “block”) with slideToggle?
[英]Using jQuery slideToggle when javascript is enabled instead of css display:block
当鼠标悬停在按钮上时,我想要一个带有复选框的div
。 我希望在浏览器中启用javascript
执行jQuery
代码。 如果禁用了javascript
我已经编写了用于hover
CSS
代码。 但CSS
代码总是覆盖jQuery
代码。 如何实现我想要的。
html
代码如下
<div id="button_div">
<button id="hover_button" type="button">Select Options</button>
<div id="checkbox_div">
<form>
<input id="one" type="checkbox" value="one" />
<label for="one">One</label>
<br />
<input id="two" type="checkbox" value="two" />
<label for="two">Two</label>
<br />
<input id="three" type="checkbox" value="three" />
<label for="three">Three</label>
<br />
<input id="four" type="checkbox" value="four" />
<label for="four">Four</label>
<br />
</form>
</div>
</div>
CSS
是
#button_div {
width: 120px;
}
#hover_button {
width: 120px;
}
#checkbox_div {
display: none;
position: relative;
top: -26px;
font-family: Verdana, sans-serif;
background-color: #EEEEEE;
width: 200px;
}
#button_div:hover>#checkbox_div {
display: block;
}
jQuery
代码是
$(document).ready(function () {
$("#button_div").hover(function () {
$("#checkbox_div").slideDown("slow");
});
});
这是小提琴链接: http : //jsfiddle.net/LdzPE/
一种方法是在button_div元素中添加一个类,比如说jscheck
。 然后在您的CSS中,更改规则以定位该新类。
所以将#button_div:hover>#checkbox_div
为#button_div.jscheck:hover>#checkbox_div
。
最后,在您的jQuery中,删除该类。 这样,如果启用了JavaScript,则会删除该类,并且不会应用CSS。 但是,如果JavaScript不可用,则该类保持不变并且CSS正常工作。
别人说的是对的。
基本上你需要将一个类绑定到应用了悬停效果的元素,例如no-js
,并在加载JavaScript时删除它,如果是的话。
简单的改变真的。
<div id="button_div" class="no-js">
$(document).ready(function () {
var $btnDiv = $("#button_div");
$btnDiv.removeClass('no-js');
$btnDiv.not('.no-js').hover(function () {
$("#checkbox_div").slideDown("fast");
});
});
#button_div.no-js:hover>#checkbox_div {
display: block;
}
这是一个小提琴 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.