Javascript 角度-检测单击背景div,但不在其中的div上
在上,在公文包页面中,我试图模拟一个弹出div,提供有关您单击的项目的更多信息。为了返回弹出窗口,我添加了一个ng单击,因此当您单击主公文包弹出窗口容器时,弹出窗口将被删除 是否可以只让公文包弹出div中暴露的部分(不在照片或描述白框上)在单击后移除主div?因此,您可以自由单击图片和白色框Javascript 角度-检测单击背景div,但不在其中的div上,javascript,css,angularjs,Javascript,Css,Angularjs,在上,在公文包页面中,我试图模拟一个弹出div,提供有关您单击的项目的更多信息。为了返回弹出窗口,我添加了一个ng单击,因此当您单击主公文包弹出窗口容器时,弹出窗口将被删除 是否可以只让公文包弹出div中暴露的部分(不在照片或描述白框上)在单击后移除主div?因此,您可以自由单击图片和白色框 <div class="portfolio-pop-up container" ng-click="losePortfolioFocus()"> <div clas
<div class="portfolio-pop-up container" ng-click="losePortfolioFocus()">
<div class="row">
<div class="col-xs-12">
<img class="portfolio-image portfolio-image-popup" src="{{portfolioImageClass}}">
</div>
<div class="col-xs-12 pop-up-container">
<div class="pop-up-row">
<div class="col-xs-9" style="background: red">
<h1>
{{portfolioTitle}}
</h1>
<p>
{{portfolioDescription}}
</p>
</div>
<div class="col-xs-3" style="background: cyan">
<a href="{{portfolioLink}}">Click me</a>
<div ng-repeat="tech in portfolioTech">
{{tech}}
</div>
</div>
</div>
</div>
</div>
</div>
CSS
任何帮助都将不胜感激,如果需要,可以发布更多css或代码我建议您从事件目标爬升事件链,并检查您的
弹出式容器
是否在其中。通过这种方式,您将有一种方法来区分弹出窗口中的点击和弹出窗口中的点击。我建议您从事件的目标爬上事件链,并检查您的弹出窗口容器是否在其中。这样,您就可以区分弹出窗口中的单击和弹出窗口中的单击。您可以在包装弹出窗口内容的元素上停止传播单击事件,如下所示:
<div class="portfolio-pop-up container" ng-click="losePortfolioFocus()">
<div class="row" ng-click="$event.stopPropagation()">
...
</div>
</div>
...
这样,弹出窗口内的单击将不会触发losePortfolioFocus()
处理程序。您可以停止包装弹出窗口内容的元素上的单击事件的传播,如下所示:
<div class="portfolio-pop-up container" ng-click="losePortfolioFocus()">
<div class="row" ng-click="$event.stopPropagation()">
...
</div>
</div>
...
这样,弹出窗口内的单击将不会触发losePortfolioFocus()
处理程序。将$event
传递到您的点击事件中,并检查目标
是否匹配,或者是否将弹出容器与背景放在同一容器中。将$event
传递到点击事件中,并检查目标
是否匹配,或者不将弹出容器与背景放在同一容器中。这起到了作用很好,谢谢!尽管我认为我应该研究一下事件链,弄清楚它为我自己做了什么。谢谢:)这个很好用,谢谢!尽管我认为我应该研究一下事件链,弄清楚它为我自己做了什么。谢谢:)
<div class="portfolio-pop-up container" ng-click="losePortfolioFocus()">
<div class="row" ng-click="$event.stopPropagation()">
...
</div>
</div>