In this plunk我有兩個div。第一個div(橙色)包含第二個div(藍色)。目標是在點擊div時顯示警報。角度:防止默認不工作時點擊div
如果你點擊橙色div(指令dir1),你會看到警報。但是如果你點擊藍色div(指令dir2),你會看到兩個警報,因爲防止默認e.preventDefault()
不會阻止事件鏈。如何使這項工作?
HTML:
<div dir1 style="width:200px;height:200px;background-color:orange">
<div dir2 style="width:100px;height:100px;background-color:blue"> </div>
</div>
的Javascript:
app.directive('dir1', function() {
var directive = {};
directive.restrict = 'EA';
directive.link = function(scope, element, attrs) {
element.bind('click', function() {
alert('clicked on dir1');
});
}
return directive;
});
app.directive('dir2', function() {
var directive = {};
directive.restrict = 'EA';
directive.link = function(scope, element, attrs) {
element.bind('click', function(e) {
e.preventDefault();
alert('clicked on dir2');
});
}
return directive;
});
你想'stopPropagation()',不'preventDefault()'。 'preventDefault'用於阻止瀏覽頁面的鏈接,表單提交等 – Phil