2015-02-07 52 views
1

當用戶點擊模式時,我希望模態隱藏。我使用此代碼實現這一點:點擊時調用函數,除非在某些元素上發生點擊

$(".modal").click(function(event){ 
    $('#myModal').modal('hide'); 
});  

然而,.modal包含imgp,並且當這些元素在用戶點擊我不想模態隱藏。什麼是實現這一目標的最佳方式?

謝謝。

回答

1

使用$(event.target).is('.modal')來檢查點擊元素是否爲模態。

$(".modal").on('click', function (event) { 
    if ($(event.target).is('.modal')) { 
     $('#myModal').modal('hide'); 
    } 
}); 

Example Here

+0

'$(event.target).hasClass( '模式')'會比使用'.is'更好。那麼......不是以任何方式明顯......但僅僅是爲了使用正確的工具。 – 2015-02-07 18:23:37

+0

@GuyPassy爲什麼它會更好?我的意思是,兩者都有效。你會說'.is()'更適合檢查元素類型嗎? – 2015-02-07 18:24:20

+0

它*可以說*更具可讀性。另外,正如我所說的,'hasClass'是這種檢查更具體的工具。 'is'是一個非常通用的工具,可以執行許多不同的檢查,但它在後臺混淆了更多的操作。我發現習慣於這種普遍的實現方式在專門使用時會成爲問題。人們忘記了對於某些行爲有更好的工具。但是,在這種情況下,沒有明顯的區別。檢查元素類型似乎是'is'的一個很好的用例 - 替代方案是純javascript。 – 2015-02-07 18:42:40

相關問題