jquery选择器的javascript对象

jquery选择器的javascript对象,javascript,jquery,Javascript,Jquery,我正在为表单编写代码,因为有很多表单需要简化表单中屏蔽字段的方式。因为我创建了一个类,用于封装字段的ID,并为每个字段分配特定的交互 我有密码: var Mask=(function() { var me=this; var eventInterator; var func; var fields; function Mask(fd,ev,fn){ this.setFunction(fd); this.setFunction(fn); this.setEvent(e

我正在为表单编写代码,因为有很多表单需要简化表单中屏蔽字段的方式。因为我创建了一个类,用于封装字段的ID,并为每个字段分配特定的交互

我有密码:

var Mask=(function() {

var me=this;    

var eventInterator;
var func; 
var fields;

function Mask(fd,ev,fn){

  this.setFunction(fd);
  this.setFunction(fn);
  this.setEvent(ev);
  this.execute();
}

Mask.prototype.setFields = function(fd){

   fields=fd;

}

Mask.prototype.setFunction= function(fn){

    func=fn;    

}

Mask.prototype.setEvent= function (ev){

    eventInterator=ev;      

}

Mask.prototype.execute = function(){

    for (var i=0;i<fields.length;i++){
        loadEvent(fields[i]);       
    }

}   

function loadEvent(field){

    $(me+' '+field).on(eventInterator,function() {  

            func();
    });

}

return Mask;

})();
我收到错误:语法错误,无法识别的表达式:[对象窗口]

如何为jquery选择器设置javascript类的对象?

有两个问题

首先
this.setFunction(fd)
应该是
这个.setFields(fd)

第二个
Mask
函数中,
me
指的是
窗口
对象,因为它是一个对象
me+''+字段
将返回
[object window]#field1
,这就是您得到错误的原因

因此,将
$(me+“”+字段)
更改为
$(字段)


正如@plalx所说,使用局部变量是没有用的,因为
Mask
的每个实例都会覆盖以前的值。这里有两个问题

首先
this.setFunction(fd)
应该是
这个.setFields(fd)

第二个
Mask
函数中,
me
指的是
窗口
对象,因为它是一个对象
me+''+字段
将返回
[object window]#field1
,这就是您得到错误的原因

因此,将
$(me+“”+字段)
更改为
$(字段)


正如@plalx所说,使用局部变量是没有用的,因为
Mask
的每个实例都会覆盖以前的值。这里有两个问题

首先
this.setFunction(fd)
应该是
这个.setFields(fd)

第二个
Mask
函数中,
me
指的是
窗口
对象,因为它是一个对象
me+''+字段
将返回
[object window]#field1
,这就是您得到错误的原因

因此,将
$(me+“”+字段)
更改为
$(字段)


正如@plalx所说,使用局部变量是没有用的,因为
Mask
的每个实例都会覆盖以前的值。这里有两个问题

首先
this.setFunction(fd)
应该是
这个.setFields(fd)

第二个
Mask
函数中,
me
指的是
窗口
对象,因为它是一个对象
me+''+字段
将返回
[object window]#field1
,这就是您得到错误的原因

因此,将
$(me+“”+字段)
更改为
$(字段)





正如@plalx所说,使用局部变量是无用的,因为
Mask
的每个实例都会覆盖以前的值

错误在哪一行?更正
this.setFunction(fd)时会发生什么
本设置字段(fd)?与问题无关,但我看不出你的
掩码
抽象与
$(字段1,#字段2,#字段3,#字段4')相比有什么用处
$(fields.join(',')).keyup(doSomeThing)
如果选择器必须是动态的。事实上,通过这种方式jquery看起来是一样的,但是我很好奇在jquery中使用javascript对象错误在哪一行?更正
这个.setFunction(fd)时会发生什么
本设置字段(fd)?与问题无关,但我看不出你的
掩码
抽象与
$(字段1,#字段2,#字段3,#字段4')相比有什么用处
$(fields.join(',')).keyup(doSomeThing)
如果选择器必须是动态的。事实上,通过这种方式jquery看起来是一样的,但是我很好奇在jquery中使用javascript对象错误在哪一行?更正
这个.setFunction(fd)时会发生什么
本设置字段(fd)?与问题无关,但我看不出你的
掩码
抽象与
$(字段1,#字段2,#字段3,#字段4')相比有什么用处
$(fields.join(',')).keyup(doSomeThing)
如果选择器必须是动态的。事实上,通过这种方式jquery看起来是一样的,但是我很好奇在jquery中使用javascript对象错误在哪一行?更正
这个.setFunction(fd)时会发生什么
本设置字段(fd)?与问题无关,但我看不出你的
掩码
抽象与
$(字段1,#字段2,#字段3,#字段4')相比有什么用处
$(fields.join(',')).keyup(doSomeThing)
如果选择器必须是动态的。实际上,通过这种方式jquery看起来是一样的,但是我对在jquery中使用javascript对象很好奇这里有两个以上的问题。整个模块没有任何意义。所有私有模块变量都将在实例间共享。经典的实现现在很好,但老实说,代码是无用的。。。你好,阿伦,谢谢你的关注。我尝试了这个替代方案,将$(me+“”+字段)更改为$(字段)。当我这样做时,jquery将所有已实现函数的实例重叠到创建的最后一个函数对象。因此,我想知道是否有可能添加javascript对象作为标识。您是否正确地了解如何更改此。setFunction(fd);对于这个.setFields(fd),当我在这里传递代码时,这是我的错误。有两个以上的问题。整个模块没有任何意义。所有私有模块变量都将在实例间共享。经典的实现现在很好,但老实说,代码是无用的。。。你好,阿伦,谢谢你的关注。我尝试了这个替代方案,将$(me+“”+字段)更改为$(字段)。当我这样做时,jquery将所有已实现函数的实例重叠到创建的最后一个函数对象。因此,我想知道是否有可能添加javascript对象作为标识。您是否正确地了解如何更改此。setFunction(fd);对于这个.setFields(fd),它是我的
 function doSomeThing(){
   alert("hi");

 }
var fields = ['#field1','#field2','#field3','#field4'];

var mask = new Mask(fields,"keyup",doSomeThing);