2012-06-05 89 views
3

我有以下的html代碼:jQuery的檢查,如果一個div被點擊或不

<div id="gridStage"> 
    <div id="point1" class="point rounded-corners"> 
    </div> 
</div> 

#gridStage是在其內部較小的div #point包含較大的股利。

我想,如果用戶點擊#point和其他錯誤功能,如果用戶點擊#point#gridStage任何地方,但不是調用正確的函數。

的問題是,當用戶點擊#point,jQuery的還檢測點擊#gridStage作爲其結果,兩者的功能被調用,這不是必需的。

目前我可以用下面的代碼來做到這一點:

var pointClick=0; 
$(".point").click(function() { 
var pointClick=1; 
    correct(); 
    setTimeout(function() { 
     pointClick=0; 
    },1000); 
}); 
$("#gridStage").click(function() { 
setTimeout(function() { 
     if(pointClick===0) { 
      wrong(); 
     } 
    }, 500); 
}); 

但我知道這是一種低效的,那麼,有沒有其他好的解決方案可能嗎?

注:所有我想要做的是,我有一個網格,圖像,然後我覆蓋一個div在它&我想檢測用戶是否點擊了一個正確的點或不是,我放置div覆蓋網格頂部的正確點,現在我必須檢測他的點擊是否在正確的點或noyt。因此,如果除了上述使用方式之外,您有更好的佈局,您可以自由地提出建議。

回答

6

您需要停止傳播。

$(".point").click(function(e) { 
    correct(); 
    e.stopPropagation(); 
}); 
$("#gridStage").click(function() { 
    wrong(); 
}); 

(注意就行了$(".point").click(function(e) {e參數和e.stopPropagation();

+0

啊,忘了stopPropagation!非常感謝 :) – gopi1410

相關問題