2010-08-07 44 views
1

我有動畫問題,我想在點擊他時動畫div,但不想動畫時點擊其他東西在那個div裏面。Animate div點擊時單擊但不是動畫當div中的元素被點擊時

這裏是我的測試網站: http://kni.prz.rzeszow.pl/~plum/portfolio/index.html

KONTAKT DIV是什麼我要找的,但是當我點擊文字區域的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;}); 

回答

6

可以稍微改變你的#kontakt處理程序檢查事件的目標,就像這樣:

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

使用.is()我們正在檢查您是直接點擊<div>還是點擊<a>(郵件圖標)。如果這兩個都不是真的,我們跳出去,別做任何事情:)