2016-11-21 161 views
-2

我有一個div及其父div。當點擊父母div時,我想執行一個操作。整個div是可點擊的。jQuery:preventDefault()/返回false不會停止腳本

孩子div有附加的另一個功能,如果點擊,父母不得執行其功能。

這對於檢查什麼被點擊

if ($(e.target).hasClass('prevent-choise')) { 
      e.preventDefault(); 
      return; 
      return false; 
     } 

// here is the rest of the code for parent element that should not execute when clicking child element (.prevent-choise) 

孩子div有一個img作爲其內容,且都有類prevent-choise我的js代碼。單擊時,在父級上執行的功能仍會運行,但有時只會運行。我無法理解這背後的邏輯。

父項是在css中的position: relative,子項是position: absolutez-index: 10

是否有任何其他方式確切知道被點擊的內容並採取相應措施?

謝謝

+1

https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation – David

+0

@David這是行不通的。查看event.stopPropagation()的jQuery文檔,它說與返回false相同,我已經這樣做了。 –

+1

上面的代碼在返回false之前有返回值。因此,你永遠不會「返回false」,因爲你上面的return語句結束了函數的執行。 –

回答

2

你沒有返回false。你返回undefined

return; 

沒有一個默認的返回值,你必須明確地指定false

return false; 

(你嘗試在下一行做遺憾的是該行從來沒有達到,因爲該功能已經返回。)

+0

我刪除它,不幸的是不工作。最後,我又給他們兩個添加了另一個父母,並設法在沒有jQuery的情況下解決它。 –