为什么焦点事件无法正常工作?

时间:2017-02-02 21:22:57

标签: javascript jquery html css

这是我的代码:

function removeWrongClass(el){
  el.removeClass('wrong');
}

$(".ask_q_title_input").on('focus', removeWrongClass($(this)));
.wrong{
  background:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="ask_q_title_input wrong" type="text" />

当您专注于输入时,预期的行为是从输入中删除红色背景颜色(这是因为.wrong类)。但它不会发生。怎么了?我该如何解决?

1 个答案:

答案 0 :(得分:0)

正如其他人所说,你正在调用该函数,而不是将其作为要运行的函数传递。

function removeWrongClass(){
  $(this).removeClass('wrong');
}

function toggleWrongClass(){
  $(this).toggleClass('wrong');
}

$(".ask_q_title_input").on('focus', removeWrongClass);

$(".ask_q_title_input_toggle").on('focus focusout', toggleWrongClass);
.wrong{
  background:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Turn off wrong on focus - <input class="ask_q_title_input wrong" type="text" /><br/>
Toggle wrong on focus in and out - <input class="ask_q_title_input_toggle wrong" type="text" />

如果您想在另一个元素上使用removeWrongClass,可以按以下方式调用它 -

removeWrongClass.call(elementYouWantAsThis)