簡體   English   中英

javascript對象到jquery選擇器

[英]javascript object to jquery selector

我正在為表單編寫代碼,因為很多表單都需要簡化掩蓋表單中字段的方式,因為我做了一個封裝字段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;

})();

當我運行以下代碼時:

 function doSomeThing(){
   alert("hi");

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

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

我收到錯誤:語法錯誤,無法識別的表達式:[對象窗口]

如何為jquery選擇器設置javascript類的對象?

有兩個問題

首先this.setFunction(fd); 應該是this.setFields(fd);

第二
在您的Mask函數中, me指的是window對象,因為它是一個對象,所以me + ' ' + field將返回[object Window] #field1 ,這就是您遇到錯誤的原因。

因此將$(me+' '+field)更改$(field)


就像@plalx所說的那樣,您對局部變量的使用是無用的,因為每個Mask實例都會覆蓋以前的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM