在jquery 1.10.2和chrome中出现“:target”选择器

时间:2013-09-23 19:38:19

标签: jquery google-chrome

我正在使用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 ...

  • 使用firefox 24.0,它会警告Hello world和。{ 正确消失。
  • 使用Chrome 29.0.1547.76,它会向undefined发出警报,并且 不会褪色。

我在两者中都使用Mac OS X.

我做错了什么?这是一个“功能”吗?

1 个答案:

答案 0 :(得分:1)

看起来像一个错误,您可以使用散列作为选择器来解决它:

  $(document).ready(function () {
    alert($(location.hash).html());
    $(location.hash).fadeOut(1000).fadeIn(1000);
  });

或者做一段时间,直到你的元素存在或者像凯文在评论中提到的那样达到一些时间。

编辑:错误报告(有一些重复)http://bugs.jquery.com/ticket/14135