使用.effects()时的特殊Jquery行为

时间:2012-12-04 04:58:24

标签: jquery

我试图在div上使用.effect(“bounce”,“slow”)但是却出现了三个div。 这个问题在文本中很难解释,所以我在底部包含了一个JSFiddle链接。

我不确定它是否是我的代码所以我将整个源代码直接从文档复制到JSFiddle并得到了相同的结果。

http://jsfiddle.net/ryBjh/

以下是代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>effect demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    div {
        width: 100px;
        height: 100px;
        background: #ccc;
        border: 1px solid #000;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>

<p>Click anywhere to apply the effect.</p>
<div></div>

<script>
$( document ).click(function() {
    $( "div" ).effect( "bounce", "slow" );
});
</script>

</body>
</html>

在Chrome上测试过 脚本在ie8和firefox上正常工作......所以这是一个chrome bug吗?

1 个答案:

答案 0 :(得分:0)

显然,chrome在页面中添加了额外的div,然后将css样式和动画应用于所有div元素。 它看起来只有1个div,但是浏览器已经插入了几个div。

我更改了代码,因此它只会影响.box类,一切都按预期工作。

以下是适用于所有浏览器的新代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>effect demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
   .box {
        width: 100px;
        height: 100px;
        background: #ccc;
        border: 1px solid #000;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>

<p>Click anywhere to apply the effect.</p>
<div class= 'box' ></div>

<script>
$( document ).click(function() {
    $( ".box" ).effect( "bounce", "slow" );
});
</script>

</body>
</html>​