2

我已经为我的问题设置了这个 jsfiddle:http: //jsfiddle.net/7MjN6/

如您所见,我有两个图像。我希望每个被单击时围绕每个的 div 展开。我正在尝试使用该this对象来确保单击图像只会扩展该图像的 div,但我确定我使用this错误,因为它没有连接。如果有人可以刺伤我的小提琴,将不胜感激!

HTML:

<body>
    <div class="img-container">
        <a href="#"><img src="http://blueantlabs.com/wp-content/themes/blueantplate/img/port-wide/thefutureproject-605.png" /></a>
    </div>
    <div class="img-container">
        <a href="#"><img src="http://blueantlabs.com/wp-content/themes/blueantplate/img/port-wide/thefutureproject-605.png" /></a>
    </div>
</body>​

JS:

$(function(){
    $('.img-container').each(function(index){
        var imgHeight = $(" a img").height();
        $('a').click(function(e){
            e.preventDefault;
            $('div').animate({height: imgHeight});
        });
    });     
});​
4

2 回答 2

3

试试这个方法。你根本不需要.each

$(function() {
    $('a').click(function(e) {
        var imgHeight = $(this).find('img').height(); // use "this", find the img inside
        e.preventDefault(); // this is a method, must use parentheses
        $(this).parent().animate({ // "this" is the anchor; move up to the parent
            height: imgHeight
        });
    });
});​

http://jsfiddle.net/mblase75/7MjN6/4/

于 2012-09-11T17:56:40.980 回答
0

您需要更改$("div").animate(...)$(this).closest("div").animate(...). 事件处理程序内this指的是单击的链接。您不想扩展所有 div(您当前的版本会这样做);您想展开包装点击链接的 div。您使用导航到那个.closest()

于 2012-09-11T17:54:46.347 回答