我试图获得元素上的文本显示在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