Javascript/jQuery新手错误,mouseenter事件导致语法错误
当触发Javascript/jQuery新手错误,mouseenter事件导致语法错误,javascript,jquery,syntax,syntax-error,Javascript,Jquery,Syntax,Syntax Error,当触发mouseenter事件时,我试图应用一种样式,但如果我取消注释以下未触及的选择器,即使文档就绪也会停止工作 <body> <div id="1" class="button untouched"></div> <script src="/jquery.js"></script> <script> $(document).ready(function(){ alert("JQuery is working");
mouseenter
事件时,我试图应用一种样式,但如果我取消注释以下未触及的选择器,即使文档就绪也会停止工作
<body>
<div id="1" class="button untouched"></div>
<script src="/jquery.js"></script>
<script>
$(document).ready(function(){
alert("JQuery is working");
});
/*
$(".untouched").mouseenter($function(){
$(this).addClass("touched");
});
*/
</script>
</body>
因为它不起作用,我犯了一个错误,但我不知道是什么。我所知道的是,如果我让它运行,我的所有代码都不会工作。我下载了jQuery的最新1.7.2版本,我知道该版本在页面上可用,因为alert()
运行时另一个被注释掉了。在脚本中$(“.untouched”)
部分应该在ready
函数中。而且
mouseenter($function(){
符号不正确
您的最终脚本应如下所示:
$(document).ready(function(){
alert("JQuery is working");
$(".untouched").mouseenter(function(){
$(this).addClass("touched");
});
});
不需要函数前面的$。另外,mouseenter事件函数代码应该在文档中
<script>
$(document).ready(function(){
alert("JQuery is working");
$(".untouched").mouseenter(function(){
$(this).addClass("touched");
});
});
</script>
$(文档).ready(函数(){
警报(“JQuery正在工作”);
$(“.untouched”).mouseenter(函数(){
$(此).addClass(“触摸”);
});
});
您有一个额外的$
您不应该在单词函数
前面。您可能还想删除未触及的类:
$(".untouched").mouseenter(function(){
$(this).removeClass("untouched").addClass("touched");
});
您可以从css轻松地执行此操作
.untouched
{
background: green;
}
.untouched :hover
{
background: blue
}
在JQuery中,如果你想使用.mouseover函数,你需要使用的函数-一个用于鼠标放在上面时,一个用于鼠标未放在上面时。这在css中更容易,只有一个:悬停过滤器
$('.untouched').mouseover(function() {
$(this).addClass('touched');
});
$('.untuoched').mouseout(function() {
$(this).removeClass('touched');
});
这是Javascript语法错误,不是jQuery问题。@JaredFarrish我怎么能检测到这个打字错误?我习惯于编译语言?我会使用Firebug或Chrome控制台。@AdrianCornish在带有控制台的浏览器中运行代码(大多数现代浏览器都内置了控制台)。我使用Chrome并点击F12。如果你进入出现的开发工具中的console选项卡,你会看到任何Javascript错误。因为我认为这不会有任何结果,所以我编辑了这个问题,使它更具体地描述了它所描述的实际问题。请随意更正我犯的任何错误。没有理由将代码移到$(文档).ready
警报(“JQuery正在工作”);
实际上也不需要在它里面。@palp.R.O.-你的意思是在doc.ready
中不需要它的原因是因为它引用的元素已经在DOM中了吗?@JaredFarrish是的。你为什么要等到整个DOM都准备好了才可以马上做呢:)@保罗P.R.O.-我想确保这一点得到澄清。对于初学者来说,最初的评论可能很容易让人困惑。我的观点是,这个问题应该被关闭,因为太本地化了。@AdrianCornish-像这样的问题太多了,它要么是重复的,要么整体价值很低。对于一些人来说,为了他们的公关而故意发现这个问题是非常困难的问题是,这只是噪音。没什么大不了的。另外,我会回顾PaulP.R.O.的答案,他的建议可能是一个很好的建议。谢谢Scott。事实上,我想创建一种Android类型的锁屏,通过在网格上移动鼠标来选择一种模式——我简化了,因为它不起作用。一旦选择了“密码”,我想解锁一个新的屏幕。我想删除这个类——因为Add依赖CSS替换规则。我仍然试图让我的头从C++世界中得到jQuery语法————-我以前有类似于2个位置的东西——但这似乎更多的是jQuery样式。
$('.untouched').mouseover(function() {
$(this).addClass('touched');
});
$('.untuoched').mouseout(function() {
$(this).removeClass('touched');
});