问题描述
网上下了个jq插件,输入框绑定了click事件,但是我自己写的angular脚本也在同一个输入框上用了ng-keydown。。。我以为是angular的keydown处理函数会执行,结果没效果。。。但是我又不能把插件的click事件处理函数给去掉,因为要用到它的功能。。。不知道怎么处理这种情况
问题解答
回答1:<body ng-app='myApp' ng-controller='MyController'>
<!--自定义指令: 限制输入框中只能是1到100之间的数值--><input type='text' score><script type=’text/javascript’ src='https://www.6hehe.com/wenda/angular.js'></script><script type='text/javascript'>
angular.module(’myApp’,[])
.directive(’score’, function () {return { link : function (scope, elements, attrs, controller) { //在显示之前执行, 只执行一次//得到input//console.log(’link()’,elements);var input = elements[0]//给input绑定keyup的监听回调函数input.onkeyup = function () { //读取input的value, 判断是否合法 var score = input.value.trim() //如果合法, background为white if(score===’’ || (score*1>=1&&score*1<=100)) {input.style.background = ’white’ } else {//否则为redinput.style.background = ’red’ }} }} }) .controller(’MyController’, function($scope){ });
</script></body></html>
今天刚写的keyup事件,keydown类似吧
回答2:不能这么写的啊,首选要 require: ’?ngModel’, 然后获取文本框的值 ngModel.$modelValue 而不是input.value ,还有不用elements[0],element就代表了jquery的思维太严重啊。。。