单击时动画div,但单击该div内的元素时不动画

时间:2010-08-07 15:10:29

标签: jquery html

我对动画有问题,我想在点击他时为div设置动画,但是当我点击该div中的其他内容时,我不想动画。

这是我测试网站: http://kni.prz.rzeszow.pl/~plum/portfolio/index.html

Kontakt div就是我正在寻找的东西,但是当我点击textareas div时就是动画了。这就是问题所在。 Thx& regars。

我网站上的代码,但这是动画div id =“kontakt”的片段:

$(function(){
$("#kontakt").click(function(){
    //zabezpieczenie przed animowaniem wielu div'ów na raz
            if ($('div').is(':animated')) {
        return;
    }
            //główna animacja odpowiedzialna za powiększanie i zmniejszanie div'a
    if (kontakt == 0) {
        kontakt = 1;
        $(this).fadeTo(500, 0.33).delay(500).fadeTo(500, 1);
        $(this).animate({
            left: '+=205',
            top: '-=205'
        }, 1000, function(){
            $(this).animate({
                width: 400,
                height: 400,
                left: '-=205'
            }, 1000, function(){
                $.get('kontakt.html', function(data){
                    $('#kontakt').html(data);
                });
            });
        });
    }
    else 
        if (kontakt == 1) {
            kontakt = 0;
            $(this).html('<a href="#">Kontakt</a>');
            $(this).animate({
                left: '+=205',
                width: 195,
                height: 195
            }, 1000, function(){
                $(this).animate({
                    left: '-=205',
                    top: '+=205'
                }, 1000);
            });
        }
});});

这对我没有帮助:

$(':text, textarea').click(function(e){
e.stopPropagation();
alert('to dziala');
return true;});

1 个答案:

答案 0 :(得分:6)

您可以稍微更改#kontakt处理程序以检查事件的目标,如下所示:

$("#kontakt").click(function(e) {
    if(!$(e.target).is('div, a')) return;

使用.is()我们会检查您是直接点击<div>还是<a>(邮件图标)。如果这些都不是真的,我们会跳出来,不做任何其他事情:)