【问题标题】:Jquery $.fn not workingJquery $.fn 不工作
【发布时间】:2012-10-19 00:40:12
【问题描述】:

fn 之前可以轻松创建函数/方法,但是,我现在遇到了一些问题。任何帮助将不胜感激:)

$.fn.formClass = function(class) 
{

var bad_class = (class=='input_good') ? 'input_bad' : 'input_good';
if($(this).hasClass(bad_class))$(this).removeClass(bad_class);
 $(this).addClass(class);

}

我正在尝试在这个函数中使用它:

function check_username()
{

var username = $('input[name="username"]');
if(username.val().length<4||username.val.length>20)
{username.formClass('input_bad');}
}

Console.log 说 Uncaught TypeError: Object [object Object] has no method 'formClass'

感谢任何帮助!

【问题讨论】:

  • class 是保留关键字,它不能是函数参数的名称。它在您的代码中的名称是否不同?
  • 顶部块肯定在底部块之前被调用吗? (假设它在您的代码中命名不同,因此实际上工作

标签: javascript jquery


【解决方案1】:

我相信您应该在使用变量名class 时遇到错误,因为它是保留关键字。尝试将其重命名为其他名称:

$.fn.formClass = function(class_name) {
  var bad_class = (class_name=='input_good') ? 'input_bad' : 'input_good';
  if($(this).hasClass(bad_class))$(this).removeClass(bad_class);
  $(this).addClass(class_name);
}

【讨论】:

  • 非常感谢您,TheZ。它完美地工作!我会在允许时标记为已回答。 :)
  • @RossWilson 没问题,我打开了控制台并收到了SyntaxError: Unexpected reserved word 错误。 class 听起来像是最明显的候选人,所以我只需要一个简单的var class = "test" 抛出错误来确认:)
猜你喜欢
  • 1970-01-01
  • 2017-08-04
  • 2013-01-07
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
相关资源
最近更新 更多