输入/更改/键入/焦点事件未触发

时间:2018-08-01 12:57:37

标签: javascript jquery vue.js javascript-events event-handling

所以我有这个功能:

showReview: function(){
            var main = document.getElementById("main");
            var ins =  main.getElementsByTagName("INPUT");
            var rev = $("reviewcontent").is(":hidden");
            for (var i = 0; i<ins.length; i++){
                $(ins[i]).on('show input keyup focus change', this.getInVals());
                console.log("Invals update from input");
            }
            if(!rev){
                this.addReview();
            }
        }

第一次加载页面时将触发事件,但在更改输入或再次专注于其他输入时不会触发事件。我不知道为什么。我考虑过它只监听main的最后一个输入,但事实并非如此。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

$(ins[i]).on('show input keyup focus change', this.getInVals());

删除getInVals调用。尝试将getInVals()更改为getInVals

$(ins[i]).on('show input keyup focus change', this.getInVals);

答案 1 :(得分:0)

我不知道您要做什么或想说什么,但是我在做类似的事情,如果有帮助,您可以举个例子。

$('.look').on('keyup change', function () {
    var value = $(this).val().toLowerCase();
    var what_place = $(this).parents('.collapse').find('.col-sm-0');
    $(what_place).each(function(){
        $(this).css({"display": "block"});
        if(value == ''){
            $(this).css({"display": "block"});
        }
        else if($(this).find('h5').text().toLowerCase().indexOf(value) < 0){
            $(this).css({"display": "none"});
        }
    });
});