2015-02-07 28 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

相关问题