1
當用戶點擊模式時,我希望模態隱藏。我使用此代碼實現這一點:點擊時調用函數,除非在某些元素上發生點擊
$(".modal").click(function(event){
$('#myModal').modal('hide');
});
然而,.modal
包含img
和p
,並且當這些元素在用戶點擊我不想模態隱藏。什麼是實現這一目標的最佳方式?
謝謝。
當用戶點擊模式時,我希望模態隱藏。我使用此代碼實現這一點:點擊時調用函數,除非在某些元素上發生點擊
$(".modal").click(function(event){
$('#myModal').modal('hide');
});
然而,.modal
包含img
和p
,並且當這些元素在用戶點擊我不想模態隱藏。什麼是實現這一目標的最佳方式?
謝謝。
使用$(event.target).is('.modal')
來檢查點擊元素是否爲模態。
$(".modal").on('click', function (event) {
if ($(event.target).is('.modal')) {
$('#myModal').modal('hide');
}
});
'$(event.target).hasClass( '模式')'會比使用'.is'更好。那麼......不是以任何方式明顯......但僅僅是爲了使用正確的工具。 – 2015-02-07 18:23:37
@GuyPassy爲什麼它會更好?我的意思是,兩者都有效。你會說'.is()'更適合檢查元素類型嗎? – 2015-02-07 18:24:20
它*可以說*更具可讀性。另外,正如我所說的,'hasClass'是這種檢查更具體的工具。 'is'是一個非常通用的工具,可以執行許多不同的檢查,但它在後臺混淆了更多的操作。我發現習慣於這種普遍的實現方式在專門使用時會成爲問題。人們忘記了對於某些行爲有更好的工具。但是,在這種情況下,沒有明顯的區別。檢查元素類型似乎是'is'的一個很好的用例 - 替代方案是純javascript。 – 2015-02-07 18:42:40