jquery focus()方法失效

问题描述:

                        $(".chatbox .sendemoji").on("emoji",
                                function(event, emoji) {
                                    var input = $(".chatbox .inputbox");
                                    input.val(input.val() + emoji);
                                    input.focus();
                                });
        $(".face_panel").click(function(event){
            var _$this=$(event.target);
            if(_$this.is("span") && _$this.attr("code")){
                var name = "face_panel";
                var panel = $("." + name);
                var mask = $("." + name + "-mask");
                if (name === "face_panel") {
                    if(IsPC()){
                        //panel.css({left: 1, top: top,width:300}).show();
                    }else {
                        var face_top=$(".opbar.noselection").offset().top+$(".face_panel").outerHeight();
                        $(".opbar.noselection").css({top:face_top});
                        mask.hide();
                    }
                }
                $(".chatbox .sendemoji").trigger("emoji",(_$this.attr("data-emoji").split("-")[4]));
                $(".face_panel").hide();
                $(".face_panel").click().clean();
            }
        });

打印文本什么都正常,说明语法并没有错,可是focus就是没用,并且我emoji表情也放不进去,还有浏览器都显示undefined方法--clean();

给需要focus的元素加上tabindex属性,并且可以先调用blur,再调用focus

为什么不试着调试一下

你要调用focus()方法,就要把方法写出来啊...比如:
$("input").focus(function(){
$("input").css("background-color","#FFFFCC");
});

没有放入表情,那么就是$(".chatbox .sendemoji")这个选择器没有选中元素,或者执行事件绑定的时候没有此类元素存在。你要确认绑定事件前已经存在$(".chatbox .sendemoji")此类元素才行