搜尋

首頁  >  問答  >  主體

angular.js - 同時有angular和jquery插件處理keydown事件

網路上下了個jq插件,輸入框綁定了click事件,但是我自己寫的angular腳本也在同一個輸入框上用了ng-keydown。 。 。我以為是angular的keydown處理函數會執行,結果沒效果。 。 。但是我又不能把插件的click事件處理函數給去掉,因為要用到它的功能。 。 。不知道怎麼處理這種狀況

漂亮男人漂亮男人2782 天前661

全部回覆(2)我來回復

  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:10:07

    <!--自定义指令: 限制输入框中只能是1到100之间的数值-->
    <input type="text" score>
    <script type='text/javascript' src="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 {
                                    //否则为red
                                    input.style.background = 'red'
                                }
                            }
                        }
                    }
                })
                .controller('MyController', function($scope){
    
                });
                



    今天剛寫的keyup事件,keydown類似吧

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-15 17:10:07

    不能這麼寫的啊,
    首選要require: '?ngModel',
    然後取得文字框的值ngModel.$modelValue 而不是input.value ,
    還有不用elements[0],element就代表了
    jquery的思維太嚴重啊。 。 。

    回覆
    0
  • 取消回覆