0

我已經有一個圖像及相關的鏈接圖。我在那裏的一個地區標籤有一個ng點擊它。目前,當您單擊該ng-click時,它所鏈接的功能將運行,但該頁面將重新加載。如何防止頁面在此過程中重新加載?防止區域標籤頁重新加載角度Ng點擊

我甚至還添加了$ event.stopPropagation()來防止頁面重新加載,但由於某種原因它不工作。這裏是我的HTML:

<div ng-app="programApp" ng-controller="programController"> 
    <img src="http://placehold.it/350x150" usemap="#testMap"> 

    <map name="testMap"> 
    <area shape="rect" coords="0,0,350,150" href="" ng-click="slideClick($event)"> 
    </map> 
</div> 

和我的角度:

angular.module('programApp', [ 
    'programApp.controllers', 
]); 
angular.module('programApp.controllers', []) 
    .controller('programController', ['$scope', 
    function($scope){ 

     $scope.slideClick = function($event){ 
     $event.stopPropagation(); 
     console.log('this ran'); 
     }; 
    }]); 

控制檯日誌運行,顯示出函數運行成功。但是,頁面仍然會重新加載。我如何防止這種情況?

See Codepen here.

+0

http://stackoverflow.com/questions/14544741/how-can-i-make-an-angularjs-directive-to-stoppropagation –

+0

我很欣賞評論,但請看看我的問題:我有以防止事件傳播已經在那裏。我的問題是,防止事件傳播不起作用,不是我沒有它。 – angularPrism

+0

您是否嘗試過使用'$ event.preventDefault()'? – jwatts1980

回答

1

我不確定stopPropagation()是否需要其他功能,但我認爲應該是$event.preventDefault()

2

不要讓href空。加入#即可。

<area shape="rect" coords="0,0,350,150" href="#" ng-click="slideClick($event)"> 

//Or 

使用

$event.preventDefault(); 

stopPropagation會冒泡,而preventDefault將阻止默認動作停止的事件。