在更改.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);
时,它似乎也能正常工作。
答案 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);
});