我試圖獲得元素上的文本顯示在plunker中,第一次單擊它顯示正確的文本字符串,但如果再次單擊它會顯示兩次和三次下一個,不確定如何防止它。任何幫助?獲取單擊標籤元素的兄弟姐妹的文本
在此先感謝
http://plnkr.co/edit/efnFSDU1lkW8JvNzk4zz?p=preview
我試圖獲得元素上的文本顯示在plunker中,第一次單擊它顯示正確的文本字符串,但如果再次單擊它會顯示兩次和三次下一個,不確定如何防止它。任何幫助?獲取單擊標籤元素的兄弟姐妹的文本
在此先感謝
http://plnkr.co/edit/efnFSDU1lkW8JvNzk4zz?p=preview
如果使用Angular
你不需要使用jQuery
事件,你可以通過$event
您功能並從當前目標的文字,像這樣
$scope.getWord = function ($event) {
alert(angular.element($event.target).text());
}
<a class="refer-word" ng-click="getWord($event)">javascript</a>
<a class="refer-word" ng-click="getWord($event)" name ="client">client</a>
只是在jQuery的
$(document).off('click').on("click", ".refer-word", function() {
var passedWord = $(this).text();
alert(passedWord);
});
正在註冊的每個你點擊一個元素時新的Click事件處理程序使用.off()
。
在我看來,最好的辦法是寫自己的指令:
var app=angular.module('myApp', []);
app.controller('TestCtrl', ['$scope', function($scope) {
}]);
app.directive('showTooltip', function() {
return {
restrict: 'EA',
link: function(scope, element, attrs) {
element.addClass('refer-word');
element.bind('click', function(){
alert(element.text());
})
}
};
});
.refer-word {
color: black;
text-decoration: underline;
font-style: italic;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp" ng-controller="TestCtrl">
<div>
<div>
<p>it is a <data-show-tooltip>javascript</data-show-tooltip> framework for <data-show-tooltip>client</data-show-tooltip> side</p>
</div>
</div>
</body>
@ boindiil感謝您使用指令進行解釋,我可以爲其他用例保留這種想法。 – mahi 2015-04-01 18:45:11
你的事件綁定位置其實是錯誤的, 不動作裏面綁定綁定,但裏面控制器或任何初始位置(只有一次)
該動作可能被觸發多次,它會重新重新綁定事件。這就是爲什麼所有事件當動作除了被調用,以結合另一個旨意被稱爲太
嘗試這個例如
app.controller('TestCtrl', ['$scope', function($scope) {
//your event if you must have it this way
$(document).on("click", ".refer-word", function() {
var passedWord = $(this).text();
//alert(passedWord);
console.log(passedWord);
});
$scope.getWord = function(){
//action to be done
}
}]);
這裏是你的代碼?什麼是plnkr.co/edit/efnFSDU1lkW8JvNzk4zz?p=preview ? – dsharew 2015-04-01 14:46:28
@rtpHarry,謝謝 – mahi 2015-04-01 14:50:08
角度控制器並不意味着託管DOM代碼。 – BiAiB 2015-04-01 14:52:45