Javascript jQuery限制插件关注点

Javascript jQuery限制插件关注点,javascript,jquery,Javascript,Jquery,这个问题是关于你的。以下是消息来源: (function($){ $.fn.extend({ limit: function(limit,element) { var interval, f; var self = $(this); $(this).focus(function(){ interval = window.setInterval(substring

这个问题是关于你的。以下是消息来源:

(function($){ 
    $.fn.extend({  
        limit: function(limit,element) {
            var interval, f;
            var self = $(this);

            $(this).focus(function(){
                interval = window.setInterval(substring,100);
            });
            $(this).blur(function(){
                clearInterval(interval);
                substring();
            });

            substringFunction = "function substring(){ var val = $(self).val();var length = val.length;if(length > limit){$(self).val($(self).val().substring(0,limit));}";

            if(typeof element != 'undefined')
                substringFunction += "if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}"

            substringFunction += "}";
            eval(substringFunction);
            substring();            
        } 
    }); 
})(jQuery);
(函数($){
$.fn.extend({
限制:功能(限制、元素){
var区间f;
var self=$(这是);
$(this.focus(function()){
间隔=窗口。设置间隔(子字符串,100);
});
$(this.blur(function()){
间隔时间;
子字符串();
});
substringFunction=“function substring(){var val=$(self.val();var length=val.length;if(length>limit){$(self.val().substring(0,limit));}”;
if(元素类型!=“未定义”)
substringFunction+=“if($(element).html()!=limit length){$(element).html((limit length1)我同意。看起来他对我不理解闭包

2) 很难准确预测哪些事件可能会改变文本框的内容。按键很明显,但可能鼠标事件也会改变文本框的内容。其他Javascript函数也可以更新文本框

3) 我有几个猜测:a)当他试图让闭包工作时,他用它来保存回调函数,当他切换到eval kludge时,没有删除声明;b)本来应该保存子字符串函数字符串,但他犯了一个错误,在分配它时调用了它
substringFunction
(注意,他忘记了那里的
var
声明)

4) 对

仅仅因为有人在网站上发布代码并不意味着他们是专家。

1)我同意。在我看来,他好像不懂闭包

2) 很难准确预测哪些事件可能会改变文本框的内容。按键很明显,但可能鼠标事件也会改变文本框的内容。其他Javascript函数也可以更新文本框

3) 我有几个猜测:a)当他试图让闭包工作时,他用它来保存回调函数,当他切换到eval kludge时,没有删除声明;b)本来应该保存子字符串函数字符串,但他犯了一个错误,在分配它时调用了它
substringFunction
(注意,他忘记了那里的
var
声明)

4) 对

仅仅因为有人将他们的代码发布到网站并不意味着他们是专家。

2)这一点很好。复制/粘贴可以绕过
keypress
,尽管我认为
change
事件仍然会触发,所以我将尝试绑定这两个事件。无论如何,我想摆脱
setInterval
,所以我必须使用它事件。3)我没有注意到
var
的缺失,它确实困扰着我的窗口对象。哎呀,非常感谢。2)好的观点。复制/粘贴可以绕过
按键
,尽管我认为
更改
事件仍然会触发,所以我将尝试绑定这两个事件。无论如何,我想摆脱
设置间隔
,因此我必须处理事件。3)我没有注意到缺少
var
,这确实困扰着我的窗口对象。哎呀,非常感谢。