我正在使用jQuery来选择一个被定位的元素(在url中使用#test
)并且我正在使用它获得与浏览器相关的行为。
代码:
### test.html
<!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>
<script src="[path_to_]/jquery-1.10.2.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<div id="test">Hello world</div>
<script>
$(document).ready(function() {
alert($(":target").html());
$(":target").fadeOut(1000).fadeIn(1000);
});
</script>
</body>
</html>
我尝试使用jsFiddle,但这需要url(我尝试了但我无法在jsFiddle中使用)。
现在,如果我打开页面test.html#test
...
Hello world
和。{
正确消失。undefined
发出警报,并且
不会褪色。我在两者中都使用Mac OS X.
我做错了什么?这是一个“功能”吗?
答案 0 :(得分:1)
看起来像一个错误,您可以使用散列作为选择器来解决它:
$(document).ready(function () {
alert($(location.hash).html());
$(location.hash).fadeOut(1000).fadeIn(1000);
});
或者做一段时间,直到你的元素存在或者像凯文在评论中提到的那样达到一些时间。
编辑:错误报告(有一些重复)http://bugs.jquery.com/ticket/14135