我有一个div的jquery动画,可以替换对方,它工作得很好但是当点击黑色块(mydiv1)时它不会返回到它的位置为什么?
<script type="text/javascript">
$(document).ready(function(){
$('.nn').click(function(){
var l = $(this).css('left');
$(this).animate({
left: '-=' + l
}, 1500, "easeOutBounce", function(){
// callBack
$("#divmain").css("background-color", $(this).css("background-color"));
});
$('.ff').animate({
left: '+=' + l
}, 1500, "easeOutBounce", function () {
// callBack
});
var ff = $('.ff');
ff.removeClass('ff').addClass('nn');
$(this).removeClass('nn').addClass('ff');
});
});
</script>
答案 0 :(得分:0)
当文档加载时,黑色方块的类别为“ff”,而不是“nn”,因此click
处理程序永远不会应用于它。
替换
$('.nn').click(function () {
与
$('.nn').live("click",function () {
它会正常工作。
答案 1 :(得分:0)
您似乎永远不会将点击事件添加到myDiv1
。当您第一次加载页面时,函数$(document).ready(function ()
正在设置所有.nn
类单击函数,但是当您将.ff
更改为.nn
类时,它没有单击函数。
答案 2 :(得分:0)
您正在使用.bind()
(通过.click()
),它仅适用于您在运行事件绑定代码时与您的选择器匹配的元素。您希望使用.delegate()
或.live()
,以便黑色块将包含在匹配元素集中。
以下是您使用.click(
替换为.live('click',
的确切代码的jsfiddle:http://jsfiddle.net/Uv2GE/