我的所有代码似乎都工作,除了我的javascript我做错了什么? 谢谢我只是一个初学者!
我试图在鼠标移过“标签”标签时进行背景更改,但它不会这样做?发生了什么事?
HTML:
<html>
<head>
<script language="JavaScript" type="text/javascript">
// This changes color on mouseover, leaves existing color box.
$('.tab-item').mouseover(function() {
$(this).addClass("tab-mouseover");
}).mouseout(function() {
$(this).removeClass("tab-mouseover");
});
// This changes color when clicked, removed old color box.
$('.tab-item').click(function() {
$('.tab-item').removeClass("tab-selected");
$(this).addClass("tab-selected");
});-->
</script>
<link href="arg.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="tab-item tab-selected" id="search-box">
Search
</div>
<div class="tab-item" id="tag-box">
Tags
</div>
</body>
</html>
CSS:
.tab-item {
-moz-border-radius: 10px;
border-radius: 10px;
font: 14px helvetica;
color: #000;
height: 20px;
float: left;
margin: 5px 5px 5px 5px;
padding: 5px 5px 5px 5px;
position: relative;
width: 75px;
}
.tab-mouseover {
background: #bdbdbd;
}
.tab-selected {
background: #c0c0c0;
}
谢谢!
詹姆斯
答案 0 :(得分:4)
您正在使用jQuery但尚未包含它。 您还需要将jquery代码放入jquery ready事件:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript">
// This changes color on mouseover, leaves existing color box.
$(function(){
$('.tab-item').mouseover(function() {
$(this).addClass("tab-mouseover");
}).mouseout(function() {
$(this).removeClass("tab-mouseover");
});
// This changes color when clicked, removed old color box.
$('.tab-item').click(function() {
$('.tab-item').removeClass("tab-selected");
$(this).addClass("tab-selected");
});
});
-->
</script>
答案 1 :(得分:3)
你还没有在这里添加你的库(jQuery,我认为)。 像这样添加:
<script src='http://foo.com/bar/library.js'></script>
如果您确实使用jQuery,则可以直接添加以下代码以使其正常工作:
<script src='http://code.jquery.com/jquery-1.6.4.js'></script>
请注意,上述意味着您取决于jQuery网站的可用性,而不是您自己的。
根据James对此的评论,是的,你可以完全废弃jQuery,但我建议你自己学习JavaScript,而不是从网站上复制代码。如果要更改onmouseover字段的背景颜色,请使用以下代码:
<div onmouseover="this.style.backgroundColor='#bdbdbd';" onmouseout="this.style.backgroundColor='white';">Search</div>
或者
<div onmouseover='this.className="tab-mouseover"' onmouseout='this.className=""'>Search</div>
或者没有JavaScript而只是简单的CSS:
<style>
.tab-mouseover:hover{
background: #bdbdbd;
}
</style>
<div class='tab-mouseover'>Search</div>
我无法回答后一部分,因为我不理解使用删除然后将相同的类添加到元素onclick。
答案 2 :(得分:1)
首先,您没有在代码中包含指向jQuery库的链接。因此,无论您将代码放在何处,您的代码都无法使用。
其次,由于您的代码位于文档script
的{{1}}元素中,因此它将在文档的head
呈现之前执行。你需要把它放在
body
块。
答案 3 :(得分:0)
试试这个:
$('.tab-item').hover(
function() {
$(this).addClass('tab-mouseover');
},
function() {
$(this).removeClass('tab-mouseover');
}
);
$('.tab-item').click(function() {
$('.tab-selected').removeClass('tab-selected');
$(this).addClass('tab-selected');
});