2011-05-24 63 views
0

如何将#book的宽度设置为#clickme a的宽度?如果我在回调函数中说$(this).width(),它会给我#book的宽度。#clickme中有多个锚标签。我需要在动画结尾处增加宽度,一看让我知道如何在jQuery中设置元素的宽度

$('#clickme a').click(function() { 
    $('#book').animate({ 
    opacity: 0.25, 
    left: '+=50', 
    height: 'toggle' 
    }, 5000, function() { 
    //set width of #book to width of #clickme a item 
    }); 
}); 

谢谢

回答

1
$('#clickme a').click(function() { 
    var aWidth = $(this).css("width");//alert(aWidth); 
    $('#book').animate({ 
     opacity: 0.25,  left: '+=50',  height: 'toggle' }, 500, 
     function() { 
      //set width of #book to width of #clickme a item 
      //alert($(this).css("width")); 
      $(this).css("width",aWidth); 
     }); 
}); 
4

基于OP评论更新时间:

$("#clickme a").click(function() { 
    var clicked = $(this); 
    $("#book").animate({ 
     opacity: 0.25, 
     left: "+=50", 
     height: "toggle" 
    }, 5000, function() { 
     $(this).css("width", clicked.width()) 
    }); 
}); 
+0

我有不止一个的#clickme,将它仍然工作? – manraj82 2011-05-24 15:06:30

+0

'a'对应'#book'吗?每个'a'里面的每个'#book'? – 2011-05-24 15:10:17

+0

#clickme是一个相对的div,锚标签位于#clickme中绝对定位的ul,所以是#book [绝对位于#clickme] – manraj82 2011-05-24 15:14:06

1
$('#clickme a').click(function() { 
    var _w = $(this).width(); 
    $('#book').animate({ 
    opacity: 0.25, 
    left: '+=50', 
    height: 'toggle' 

    }, 5000, function() { 
    $(this).width(_w); 
    }); 
}); 
+0

我需要增加动画结尾处的宽度 – manraj82 2011-05-24 15:09:26

0

你可以尝试这样的...

$('#clickme a').click(function() { 
    $('#book').animate({ 
    opacity: 0.25, 
    left: '+=50', 
    height: 'toggle' 
    }, 5000, function() { 
    $(this).css('width','500'); 
    }); 
}); 
1
$('#book').width($("#clickme a").width()) 
+1

这不做任何事。这是书。 – Lobo 2011-05-24 15:14:49

+0

对不起,可能会出现问题,如果有多个点击我的元素我猜:/ – Treemonkey 2011-05-24 15:19:00

相关问题