jQuery.animate() - 单击事件不会触发

时间:2011-11-18 17:55:08

标签: javascript jquery html onclick jquery-animate

在更改.animate() / top时使用left时,点击事件似乎无法触发。例如:

<div style="width: 640px; height: 480px; position: relative;">
<div id="child" onclick="alert('ok')" style="position: relative;">Some text</div>
</div>

使用类似的脚本:

$('#child').animate({ top: 200, left: 200 }, 2000);

单击div时,您没有看到警报 - 您必须等待元素先停止移动。 有什么方法可以解决这个问题吗? :(

编辑:我的例子对我的问题不准确。对不起大家!谢谢您的快速回答。

编辑:这里有一个更新的例子,问题重现:http://jsfiddle.net/M9udv/8/ 我也在使用最新的Chrome。

再次编辑:好的,我正在使用jquery.live("click", function() {});,当我在函数中包含$(targ).stop(true);时,它似乎也能正常工作。

3 个答案:

答案 0 :(得分:1)

确实有效 也许,因为它是动画的,你很难点击实际元素(相当小) 看看这里:http://jsfiddle.net/GA5Re/

答案 1 :(得分:1)

我相信它确实有效但是元素周围的线框非常小,并且在移动时很难点击。我做了一个这样的工作示例(并在几个不同的浏览器中进行了测试)并使用了一些填充来使元素更容易点击:http://jsfiddle.net/M9udv/

答案 2 :(得分:0)

为什么不简单地将警报移动到您的jQuery代码中:

$('#child').click(function(){
alert('ok');
$(this).animate({ top: 200, left: 200 }, 2000);
});