这是我的代码:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(".social").hover(function() {
$("h1", this).hide();
$(".networks", this).fadeIn();
}, function() {
$(".networks", this).hide();
$("h1", this).fadeIn();
});
</script>
<style>
.networks {
display:none;
}
</style>
</head>
<body>
<div class="social">
<h1>Share this</h1>
<div class="networks">
<p>Twitter</p>
<p>Facebook</p>
</div>
</div>
</body>
</html>
当我在http://jsfiddle.net/ppksR/中尝试时,它确实有效,但是当我将其粘贴到我的Dreamweaver中时,它无效。我错过了什么???有什么帮助吗?
答案 0 :(得分:1)
jsfiddle将JavaScript代码包装在onLoad
中,您应该这样做。将脚本内容包装在:
$(function () {
// your code
});
要让jsfiddle模仿您正在做的事情,请将onLoad
更改为No wrap - in <head>
答案 1 :(得分:0)
您的问题是基本的jQuery 101 ....当您的代码触发时,元素不存在。
将代码包裹在document.ready
中,或将代码放在引用的元素
API参考:http://api.jquery.com/ready/
另外值得在文档中阅读How jQuery Works以获得更好的解释。
编辑 jsfiddle中的共振代码工作原因是左上角显示onLoad
。当选择了
答案 2 :(得分:0)
你需要包装它:
$( function(){ .....
} );
这将确保在浏览器读取所有HTML之前代码不会执行。目前,您在定义.social
的任何元素之前执行代码。
答案 3 :(得分:0)
您是否在本地使用其他编辑器/浏览器尝试过该代码?也许DW没有正确加载jQuery。您是否已将代码粘贴到纯文本文件并在浏览器中测试该页面?
答案 4 :(得分:0)
这只是空闲脚本。
$(document).ready(function(e) {
$(".social").hover(function() {
$("h1", this).hide();
$(".networks", this).fadeIn();
}, function() {
$(".networks", this).hide();
$("h1", this).fadeIn();
});
});
这一行$(document).ready(function(e) {
使它通过脚本启动onLoad。
这就是您的代码所做的事情。 http://jsfiddle.net/3SKqQ/