使用jQuery调用函数

时间:2014-10-13 12:44:16

标签: javascript jquery

我正在构建一个jQuery脚本,我在理解一切是如何工作方面遇到了问题,所以基本上我要创建一个函数而不是重写很多代码,所以我就是这样做的:

$('.chkboxes').on("change", ":checkbox", function () {
   if (this.checked) {                
       var yolo = this.id;
       switch(yolo) {
       case "chkBox1":
       break;
       case "chkBox2":
       addfield("yolo" , "yolo", "text", "yolo");
       break;
    }
}

然后我有一个名为“addfield”的函数:

function addfield(class, name, type, id) {
  var fieldstring = '<tr class=" ' + class + '"><td>' + name + '</td><td><input type="' + type + '" id="' + id + '" name ="' + name + '" /></td></tr>';
  alert(fieldstring);
  $(fieldstring).hide().appendTo(wrapper).fadeIn(999);
}

但我不能让它工作,我应该怎么做,我一直把功能视为java方法,但它不能像我希望的那样工作!任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:3)

您不能在变量名称中使用classvarnew等关键字,因此您应该更改

function addfield(class, name, type, id) {
  var fieldstring = '<tr class=" ' + class + '"><td>' + name + '</td><td><input type="' + type + '"            id="' + id + '" name ="' + name + '" /></td></tr>';
   alert(fieldstring);
   $(fieldstring).hide().appendTo(wrapper).fadeIn(999);
}

 function addfield(someArgRepresentsClass, name, type, id) {
  var fieldstring = '<tr class=" ' + someArgRepresentsClass + '"><td>' + name + '</td><td><input type="' + type + '"            id="' + id + '" name ="' + name + '" /></td></tr>';
   alert(fieldstring);
   $(fieldstring).hide().appendTo(wrapper).fadeIn(999);
}

使用变量名&#34;我的意思是使关键字变量名称。你可以像newClass等一样编写smth。

$('.chkboxes').on("change", ":checkbox", function () {
    var $this = $(this);
    if ($this.is(':checked')) {

        var yolo = $this.attr('id');
        if (yolo == "chkBox1"){ 
           break;
        } else if (yolo == "chkBox2"){
          addfield("yolo" , "yolo", "text", "yolo");
          break;
        }
    }
}

第二个是this.id,将其更改为$(this).attr('id') 顺便说一句,不要使用开关,在这种情况下,if().. else会更好。