jQuery的有hasClass()函数日在返回true,如果在包装的集合中的任何元素包含指定类
if (!$(this).hasClass("selected")) {
//do stuff
}
Take a look at my example of use
- 如果你将鼠标悬停在一个div,它消失的 正常速度为100%不透明度,如果 DIV做不包含“选择” 类
- 如果悬停了一个div的,它以缓慢的速度逐渐消失 至30%的不透明度,如果 格不包含“选择” class
- 单击此按钮可将'selected' 类添加到红色div。衰落 效果上的红格
这里不再工作是它的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<title>Sandbox</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
body { background-color: #FFF; font: 16px Helvetica, Arial; color: #000; }
</style>
<!-- jQuery code here -->
<script type="text/javascript">
$(function() {
$('#myButton').click(function(e) {
$('#div2').addClass('selected');
});
$('.thumbs').bind('click',function(e) { alert('You clicked ' + e.target.id); });
$('.thumbs').hover(fadeItIn, fadeItOut);
});
function fadeItIn(e) {
if (!$(e.target).hasClass('selected'))
{
$(e.target).fadeTo('normal', 1.0);
}
}
function fadeItOut(e) {
if (!$(e.target).hasClass('selected'))
{
$(e.target).fadeTo('slow', 0.3);
}
}
</script>
</head>
<body>
<div id="div1" class="thumbs" style=" background-color: #0f0; margin: 10px; padding: 10px; width: 100px; height: 50px; clear: both;">
One div with a thumbs class
</div>
<div id="div2" class="thumbs" style=" background-color: #f00; margin: 10px; padding: 10px; width: 100px; height: 50px; clear: both;">
Another one with a thumbs class
</div>
<input type="button" id="myButton" value="add 'selected' class to red div" />
</body>
</html>
编辑:
这只是一种猜测,但你想achieve something like this ?
- 两个分隔上30%的不透明度
- 开始悬停在一个div衰为100%的不透明度,盘旋出褪色回到30%的不透明度。淡出效果仅在没有“选择”类
- 点击一个div添加元素的工作/删除 “选择”类
jQuery代码是这里 -
$(function() {
$('.thumbs').bind('click',function(e) { $(e.target).toggleClass('selected'); });
$('.thumbs').hover(fadeItIn, fadeItOut);
$('.thumbs').css('opacity', 0.3);
});
function fadeItIn(e) {
if (!$(e.target).hasClass('selected'))
{
$(e.target).fadeTo('normal', 1.0);
}
}
function fadeItOut(e) {
if (!$(e.target).hasClass('selected'))
{
$(e.target).fadeTo('slow', 0.3);
}
}
<div id="div1" class="thumbs" style=" background-color: #0f0; margin: 10px; padding: 10px; width: 100px; height: 50px; clear: both; cursor:pointer;">
One div with a thumbs class
</div>
<div id="div2" class="thumbs" style=" background-color: #f00; margin: 10px; padding: 10px; width: 100px; height: 50px; clear: both; cursor:pointer;">
Another one with a thumbs class
</div>
思考,如果OP在一些点添加类到div后的document.ready话,我不认为你的语法,将工作 – 2009-02-06 14:06:42
此外,还有多个div叫做.thumbs .... – zuk1 2009-02-06 14:14:07
@ zuk1:那么,从你的片段中,你可以将所有元素放在class'thumb'中,然后在每个元素上做一个悬停()。你是说你只想在一个元素上悬停?那一个元素是什么?我很困惑。 – alphadogg 2009-02-06 14:57:00