gpt4 book ai didi

javascript - 如何在angular js中单击外部时关闭弹出窗口

转载 作者:行者123 更新时间:2023-11-30 00:14:36 25 4
gpt4 key购买 nike

如果用户在弹出窗口外单击,我想关闭弹出窗口。在下面的代码中。尝试了一些发布的用于在弹出窗口外单击但不起作用的示例。

<!DOCTYPE html>
<html >
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="https://code.angularjs.org/1.2.22/angular.js"></script>
</head>
<body ng-app="myApp">
<div class="example" ng-controller="MyCtrl">
<a class="btn btn-lg btn-success" href="javascript:;" popover ng-click="click()">popover</a>
<div style="display:none">
<div class="pop-content" id="val">
{{ myVar }}
<input type="button" />
</div>
</div>

<input ng-model="myVar">
</div>
</body>
</html>
<script>
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function ($scope) {
$scope.myVar = 3 + 4;
})
myApp.directive('popover', function ($compile) {
return {
link: function (scope, element, attrs) {
// define popover for this element
$(element).popover({
html: true,
placement: "top",
// grab popover content from the next element
content: $compile($(element).siblings(".pop-content").contents())(scope)
});
}
}
});

</script>

最佳答案

您似乎遇到了 Twitter Bootstrap 错误。请参阅此问题 here

您需要更改 html 以允许此功能。

<a class="btn btn-lg btn-success" href="javascript:;" popover ng-click="click()">popover</a>

<a popover class="btn btn-lg btn-success" href="javascript:;" tabindex="0" data-trigger="focus" >popover</a>

另一个问题是您没有在 JavaScript 中正确提供 content

$(element).siblings("div").children(".pop-content").contents()

我在你的链接函数中做了这个。

这里是 plunk

注意:现在你不能用 anchor 本身关闭它..

------------更新------------

要实现这一点,您必须执行类似data-trigger="click focus" 的操作,但通过使用它,我遇到了一个不寻常的错误。第一次单击时,弹出窗口会立即打开和关闭。

关于javascript - 如何在angular js中单击外部时关闭弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com